pl sql package oracle pl sql package tutorial with examples
Découvrez PL SQL Package, ses avantages, ses spécifications et sa structure:
Dans cet article, nous continuerons avec Série PL / SQL . dans le Enregistrements PL SQL tutoriel, nous avons découvert les enregistrements et les types d'enregistrement avec des exemples de programmation.
Ici, nous allons explorer les packages en PL / SQL et certaines fonctionnalités importantes des packages. En outre, nous discuterons de certaines des opérations de base sur eux.
Nous discuterons également des packages dbms_ouput en PL / SQL et de ses sous-programmes.
Commençons par les apprentissages !!
Ce que vous apprendrez:
Package PL SQL
Un package est un objet sous la forme d'un schéma qui sépare les éléments, types et sous-programmes logiquement connectés dans PL / SQL. Un package se compose de deux parties: Spécification du paquet et Corps ou définition du package .
La spécification du package est comme une interface avec l'application et est utilisée pour déclarer des variables, des constantes, des types, des exceptions, des curseurs et des sous-programmes. Le corps d'un package implémente les sous-programmes et curseurs déclarés dans la spécification du package.
Nous pouvons mettre à jour, déboguer ou modifier le corps d'un package sans toucher à la spécification du package (également appelée interface vers le package).
Avantages du package PL / SQL
Les avantages du package sont énumérés ci-dessous:
- Cela donne de la modularité à notre code.
- Cela permet de concevoir facilement l'application.
- Le package PLSQL permet de masquer les informations à l'aide d'éléments publics et privés, de types de données et de sous-programmes.
- package permet de conserver les informations sur toutes les transactions sans avoir besoin de les stocker dans la base de données.
- Les packages aident à améliorer les performances d'exécution.
Spécification du paquet
Une spécification de package est comme une interface avec le package. Il s'occupe de la déclaration des variables, constantes, types, exceptions, curseurs et sous-programmes. Ainsi, il a tous les détails sur le contenu du paquet mais n'a pas l'implémentation des sous-programmes.
Les objets à l'intérieur d'une spécification de package sont des objets publics. Tous les sous-programmes implémentés dans un corps de package sont des objets privés. Nous pouvons déclarer plusieurs variables globales, fonctions ou procédures dans la spécification du package.
Une spécification de package est une entité indépendante et peut exister sans corps de package.
Implémentation du code:
CREATE PACKAGE citi AS FUNCTION p_strng RETURN VARCHAR2; END citi; /
La sortie du code ci-dessus:
Corps du paquet
Le corps du package contient l'implémentation des curseurs et sous-programmes déclarés dans la spécification du package. Il faut se rappeler que les sous-programmes implémentés dans le corps du package sont accessibles en dehors du package à condition qu'ils soient déclarés dans la spécification du package.
Le sous-programme déclaré dans la spécification et le corps du paquet doit être exact. Cette comparaison se fait jeton par jeton de leurs en-têtes. Au cas où ils ne correspondent pas, PL / SQL lève une exception.
comment déposer un rapport de bogue
Le corps du package peut contenir d'autres sous-programmes qui ne sont pas déclarés dans la spécification du package. Dans ce cas, ceux-ci sont privés pour ce corps de package uniquement. CRÉER LE CORPS DU PACKAGE est le mot-clé utilisé pour créer un corps de package.
Prenons un exemple pour créer le corps du package pour le les autres paquet.
Implémentation de code avec le corps du package.
CREATE OR REPLACE PACKAGE BODY citi AS --function implemented FUNCTION p_strng RETURN VARCHAR2 IS BEGIN RETURN 'Software Testing Help!'; END p_strng; END citi; /
La sortie du code ci-dessus doit être.
Se référer aux éléments du package
Comme nous en avons terminé avec la déclaration des éléments dans la spécification du package et leur implémentation dans le corps du package, nous devons nous référer à ces éléments. Les éléments du package se composent des fonctions, des procédures et des variables.
Ces éléments publics du package sont accessibles par le nom du package suivi du nom de l'élément séparé par la notation point (.).
Syntaxe:
package_name.element_name;
Implémentation de codage pour accéder aux éléments:
BEGIN DBMS_OUTPUT.PUT_LINE (citi.p_strng); END;
La sortie du code ci-dessus:
Créer un package PL SQL
Si un package est appelé ou référencé dans une session, une nouvelle instance de ce package est créée en PL / SQL. Nous avons la possibilité d'initialiser les éléments du package ou d'effectuer toute autre action lors de la création de l'instance avec le bloc de code Initialisation du package. Il s'agit du bloc de code exécutable dans le corps du package après l'initialisation des éléments du package.
Syntaxe de création de package:
CREATE (OR REPLACE) PACKAGE BODY IS BEGIN END
Ici, le package_n est le nom du package.
Surcharger un paquet
Il peut y avoir plusieurs sous-programmes dans un package ayant des noms similaires. Cette fonctionnalité est utile si nous voulons avoir des paramètres homogènes avec des types de données hétérogènes. Le concept de surcharge au sein du package permet aux programmeurs de mentionner clairement le type d'action qu'ils souhaitent effectuer.
Implémentation de codage avec surcharge de procédure. (Package créé):
comment créer une application java dans eclipse
CREATE PACKAGE overloadingprocedure AS Procedure overl_method (p varchar2); Procedure overl_method (numbr number); END overloadingprocedure; /
La sortie du code ci-dessus:
Implémentation de codage avec surcharge de procédure. (Corps du package créé)
CREATE OR REPLACE PACKAGE BODY overloadingprocedure AS --procedure implemented Procedure overl_method (p varchar2) AS BEGIN DBMS_OUTPUT.PUT_LINE ('First Procedure: ' || p); END; --procedure implemented Procedure overl_method (numbr number) AS BEGIN DBMS_OUTPUT.PUT_LINE ('Second Procedure: ' || numbr); END; END; /
La sortie du code ci-dessus:
Implémentation de codage avec surcharge de procédure. (Procédure d'emballage se référant)
BEGIN overloadingprocedure.overl_method ('Software Testing Help'); overloadingprocedure.overl_method (1); END;
La sortie du code ci-dessus:
Dépendance du package PLSQL
Les dépendances de package en PL / SQL sont répertoriées ci-dessous:
- Une spécification de package est une identité indépendante.
- Le corps du package dépend de la spécification du package.
- Un corps de package ne peut être compilé que séparément. Cependant, si une spécification de package est compilée, le corps doit être de nouveau compilé.
- Une fonction ou une procédure à l'intérieur d'un corps de package qui dépend des éléments privés doit être implémentée après la déclaration des éléments privés.
Instructions pour la création d'un package dans PL SQL:
- Un package doit être rédigé en termes génériques afin de pouvoir être réutilisé à l'avenir.
- Évitez les caractéristiques en double dans un package.
- La spécification de package contient la clé d'une application correctement conçue. Spécification complète du package avant de créer le corps du package.
- Une spécification de package ne doit contenir que des éléments, des sous-programmes et des types qui doivent être accessibles aux utilisateurs du package. Il ne doit pas contenir d'informations de mise en œuvre inutiles.
- La spécification de l'emballage doit contenir un nombre limité d'articles. Cela permettra de gagner du temps pour la recompilation du code, car une modification de la spécification du package oblige PL / SQL à recompiler tous les sous-programmes qui font référence au package.
Informations sur le package en PL / SQL
Tous les détails pertinents tels que la source du package, les sous-programmes et les éléments surchargés sont stockés dans des tables de définition de données après la création d'un package.
La liste des tableaux de définition des données est la suivante:
- USER_PROCEDURES: Cette table contient des informations de sous-programme telles que les éléments surchargés, object_id, etc. pour l'utilisateur actuel.
- ALL_PROCEDURES: Cette table contient des informations de sous-programme telles que les éléments surchargés, object_id, etc. pour tous les utilisateurs.
- USER_SOURCE: Ce tableau contient les informations sur la source de l'objet pour l'utilisateur actuel.
- ALL_SOURCE: Ce tableau contient les informations sur la source de l'objet pour tous les utilisateurs.
- ALL_OBJECT: Cette table contient les informations sur le package comme la date de création, l'id_objet et d'autres détails d'objet pour tous les utilisateurs.
Sortie SGBD en PL / SQL
Le package DBMS_OUTPUT permet d'afficher la sortie PL / SQL produite à partir de sous-programmes et de blocs de code. Cela nous aide à déboguer, tester notre code et envoyer des messages.
La put_line La procédure produit les données de sortie dans un tampon. Les informations s'affichent à l'aide du get_line procédure ou en configurant SERVEROUTPUT ON dans SQL * Plus.
Le package DBMS_OUTPUT contient les sous-programmes suivants:
Sl No. | Nom | Finalités |
---|---|---|
un | DBMS_OUTPUT.DISABLE | Limite la sortie du message. |
deux | DBMS_OUTPUT.ENABLE (tampon IN INTEGER DEFAULT 20000) | Permet la sortie du message. Si le tampon est défini sur NULL, il représente une taille illimitée du tampon. |
3 | DBMS_OUTPUT.GET_LINE (ligne OUT VARCHAR, état OUT NUMBER) | Récupère une information mise en mémoire tampon dans une seule ligne. |
4 | DBMS_OUTPUT.NEW_LINE | Termine un marqueur de fin de ligne. |
5 | DBMS_OUTPUT.PUT (élément IN VARCHAR) | Place une ligne incomplète dans le tampon. |
6 | DBMS_OUTPUT.PUT_LINE (élément IN VARCHAR) | Place une ligne complète dans le tampon. |
Implémentation du code:
DECLARE BEGIN DBMS_OUTPUT.PUT_LINE ('Software Testing Help!'); END;
La sortie du code ci-dessus:
Foire aux questions et réponses
Q # 1) Qu'est-ce qu'un package dans PL SQL?
Répondre: Un package est un schéma d'objet qui classe les variables, les constantes, les curseurs, les sous-programmes et les types liés logiquement.
Q # 2) Quels sont les avantages des packages PL SQL?
Réponse: Les avantages du package sont énumérés ci-dessous:
- Avec les packages, il devient facile de concevoir des applications.
- Avec les packages, nous pouvons réaliser l'encapsulation.
- Les packages aident à obtenir de meilleures performances en termes de vitesse d'exécution.
- Le code devient plus modulaire avec les packages.
Q # 3) Pouvons-nous créer un corps de package sans spécification?
Répondre: Oui, nous pouvons créer un corps de package sans spécification de package.
Q # 4) Qu'est-ce que Dbms_output Put_line dans PL SQL?
Répondre: Le dbms_output put_line est une procédure dans Oracle qui nous permet d'écrire des informations dans un fichier plat ou dans l'écran de sortie PL / SQL.
Q # 5) Qu'est-ce que Dbms_output?
Répondre: Le dbms_output est un package par défaut qui nous permet d'afficher les informations de débogage, la sortie et d'envoyer des messages à partir des sous-programmes, des déclencheurs, des packages et du bloc de code PL / SQL
cast char en int c ++
Conclusion
Dans ce tutoriel, nous avons discuté en détail de quelques concepts de base sur les packages PL SQL qui sont essentiels pour les utiliser dans des applications réelles.
Nous avons couvert les sujets suivants énumérés ci-dessous:
- Paquets et leur structure.
- Différentes caractéristiques des packages.
- Sortie SGBD.
- Sous-programmes du package DBMS_OUTPUT.
<< PREV Tutorial | Tutoriel SUIVANT >>
lecture recommandée
- Tutoriel PL SQL pour les débutants avec des exemples | Qu'est-ce que PL / SQL
- Tutoriel PL SQL Records avec des exemples
- Curseur et chaînes PL SQL: Tutoriel avec des exemples de code
- Tutoriel Python DateTime avec des exemples
- Développement d'applications de base de données Oracle: Oracle SQL et PL / SQL
- Principales questions d'entretien d'Oracle: Questions Oracle Basic, SQL, PL / SQL
- Différence entre SQL et MySQL et SQL Server (avec exemples)
- Questions d'entretien les plus fréquentes sur Oracle Forms and Reports