PL / SQL est un langage procédural qui surmonte les lacunes rencontrées par Langage de requêtes structurées . C'est une extension de SQL et nous pouvons même utiliser des requêtes SQL sans aucun tracas dans n'importe quelle application ou programme PL / SQL. Dans ce tutoriel PL / SQL, nous allons passer en revue les concepts de base de PL / SQL en détail. Les sujets suivants sont traités dans cet article.
- Qu'est-ce que PL / SQL?
- Structures de bloc en PL / SQL
- Variables PL / SQL
- Fonction en PL / SQL
- Procédure PL / SQL
- Bloc imbriqué
- Déclaration IF
- Déclaration CASE
- Déclaration de boucle
- Manipulation exceptionnelle
Qu'est-ce que PL / SQL?
Il représente l'extension du langage procédural au Langage de requêtes structurées . Oracle a créé PL / SQL qui étend certaines limitations de SQL pour fournir une solution plus complète pour la création d'applications critiques exécutées sur l'oracle .
Fonctionnalités
PL / SQL fournit les fonctionnalités d'un langage procédural tel que la prise de décision, l'itération, etc.
En utilisant une seule commande, PL / SQL peut exécuter un certain nombre de requêtes.
Nous pouvons également réutiliser des unités PL / SQL telles que des fonctions, des déclencheurs, des procédures, etc. qui sont stockées dans la base de données après la création.
PL / SQL a également un bloc de gestion des exceptions qui gère les exceptions dans PL / SQL.
Une vérification complète des erreurs est également possible en utilisant PL / SQL
Les applications écrites en PL / SQL sont portables vers d'autres matériels et systèmes d'exploitation à condition qu'oracle soit opérationnel.
PL / SQL vs SQL
SQL | PL / SQL |
SQL est une requête unique utilisée pour effectuer des opérations DDL et DML | PL / SQL est un bloc de codes utilisé pour définir un programme entier ou une procédure / une fonction, etc. |
Il ne définit pas vraiment comment les choses doivent être faites, définit plutôt ce qui doit être fait | PL / SQL définit comment les choses doivent être faites |
Il exécute une seule instruction | Il exécute un bloc d'instructions à la fois. |
SQL est principalement utilisé pour manipuler les données | PL / SQL, d'autre part, est utilisé pour créer des applications |
Il ne peut pas contenir de code PL / SQL | Puisqu'il s'agit d'une extension SQL, elle peut contenir du code SQL |
Structures de bloc en PL / SQL
PL / SQL organise généralement le code en blocs. Le bloc de code sans nom est appelé bloc anonyme. Il est connu sous le nom de bloc anonyme car il n'est pas enregistré dans la base de données oracle. Jetons un coup d'œil à un bloc anonyme en PL / SQL.
[DECLARE] instructions de déclaration [BEGIN] instructions d'exécution [EXCEPTION] instructions d'exception END /
En regardant le diagramme ci-dessus, nous pouvons voir que la structure de bloc est divisée en quatre parties, à savoir la déclaration, le début, l'exception et la fin. Essayons de comprendre comment la structure de bloc fonctionne en PL / SQL. Parmi toutes ces sections, la section d'exécution est obligatoire et les autres sont toutes facultatives.
DÉCLARER Le mot-clé est utilisé pour la section de déclaration est utilisé pour déclarer des types de données et des structures telles que des variables, des fonctions, etc.
COMMENCER Le mot-clé est utilisé pour la section d'exécution. Il est obligatoire et contient toutes les instructions qui doivent être exécutées. Ce bloc est l'endroit où la logique métier est définie, nous pouvons utiliser à la fois des instructions procédurales ou SQL dans ce bloc.
La EXCEPTION Le mot-clé est utilisé pour la section d'exception. Il contient toutes les instructions d'exception.
FIN Le mot clé marque la fin du bloc et la barre oblique inversée «/» indique à l’outil que vous utilisez (Oracle Database Tool) pour exécuter le bloc PL / SQL.
quelles sont les variables d'instance en java
Voici un exemple simple pour montrer comment nous pouvons utiliser le code PL / SQL.
BEGIN NULL END /
Maintenant que nous savons comment la structure de bloc fonctionne en PL / SQL, comprenons les différents aspects de PL / SQL comme la déclaration, la dénomination et l'attribution de valeurs aux variables.
Variables PL / SQL
La variable dans PL / SQL est essentiellement un nom qui varie ou un emplacement de stockage temporaire qui prend en charge un type de données particulier. Voyons comment nous pouvons utiliser les variables dans un programme PL / SQL.
Règles de dénomination des variables
PL / SQL suit les règles suivantes pour nommer les variables.
La variable ne peut pas contenir plus de 31 caractères
Le nom de la variable doit commencer par un caractère ASCII. Puisque PL / SQL est sensible à la casse, une lettre majuscule et une lettre minuscule seront des variables différentes.
Après le premier caractère, il doit y avoir un caractère spécial ($, _) ou n'importe quel nombre.
Conventions de nommage
Utilisez les conventions de dénomination suivantes répertoriées ci-dessous pour utiliser les variables.
Préfixe | Type de données |
v_ | VARCHAR2 |
n_ | NOMBRE |
t_ | TABLE |
r_ | RANGÉE |
ré_ | DATE |
b_ | BOOLÉEN |
Déclaration
Essayons de comprendre comment la déclaration de variable est effectuée en PL / SQL
La déclaration comprend le nom de la variable suivi du type de données et séparé par un point-virgule. Voici un exemple pour montrer comment vous pouvez déclarer une variable en PL / SQL.
DECLARE v_name VARCHAR (25) n_age NUMBER (3) BEGIN NULL END
Vous pouvez également ajouter la longueur du type de données comme nous l'avons fait dans l'exemple ci-dessus.
Ancres
L'ancre fait essentiellement référence à l'utilisation du mot clé% TYPE pour déclarer une variable avec le type de données associé au type de données d'une colonne d'une colonne particulière dans une table.
Jetez un œil à un exemple pour comprendre cela. Supposons que nous ayons une table EMPLOYEES, nous pouvons utiliser les ancres de la manière suivante.
DECLARE v_name EMPLOYEE.NAME% TYPE n_age EMPLOYEE.AGE% TYPE BEGIN NULL END /
Affectation
L'affectation des variables est assez simple, nous pouvons utiliser l'opérateur d'affectation pour affecter des valeurs à une variable. L'exemple suivant montre comment attribuer des valeurs à une variable.
DECLARE v_name VARCHAR (20) n_course VARCHAR (10) BEGIN v_name = 'edureka' v_course = 'sql' END /
Initialisation
Nous pouvons également initialiser une valeur pour la variable dans la section déclaration. L'exemple suivant montre comment nous pouvons initialiser des valeurs à une variable.
DECLARE v_name VARCHAR (20) = 'edureka' n_course VARCHAR (10) = 'sql' BEGIN NULL END /
Maintenant que nous savons comment nous pouvons travailler avec les variables, essayons de comprendre comment nous allons utiliser les fonctions en PL / SQL.
Fonction en PL / SQL
Une fonction en PL / SQL est essentiellement un bloc nommé qui renvoie une valeur. Il est également connu sous le nom de sous-programme ou de sous-programme, la syntaxe suivante montre comment nous pouvons utiliser les fonctions en PL / SQL.
CREATE [OR REPLACE] FUNCTION nom_fonction [(paramètre_1 [IN] [OUT] type_données, paramètre_2 [IN] [OUT] type_données, paramètre_N [IN] [OUT] type_données] RETURN return_data_type IS BEGIN Les instructions retournent return_data_type EXCEPTION END /
Tout d'abord, vous devez spécifier un nom de fonction après le mot-clé. Le nom de la fonction doit commencer par un verbe. Une fonction peut avoir aucun, un ou plusieurs paramètres que nous spécifions dans les paramètres. Nous devons spécifier le type de données de chaque paramètre explicitement, puis vient le mode qui peut l'une des deux suivantes.
DANS - Le paramètre IN est un paramètre en lecture seule.
EN DEHORS - C'est un paramètre en écriture seule
EN SORTIE - Le paramètre IN OUT est à la fois un paramètre en lecture-écriture.
Voici un exemple simple pour montrer comment nous utilisons les fonctions en PL / SQL.
FONCTION CRÉER OU REMPLACER try_parse (iv_number IN VARCHAR2) RETURN NUMBER IS BEGIN RETURN to_number (iv_number) EXCEPTION WHEN other then RETURN NULL END
Appeler une fonction
Essayons d'appeler la fonction que nous avons créée dans un bloc anonyme dans l'exemple suivant.
SET SERVEROUTPUT ON SIZE 1000000 DECLARE n_x numéro n_y numéro n_z nombre BEGIN n_x: = try_parse ('256') n_y: = try_parse ('29 .72 ') n_z: = try_parse (' pqrs ') DBMS_OUTPUT.PUT_LINE (n_x. DBMS_OUTPUT.PUT_LINE (n_x) DBMS_OUTPUT.PUT_LINE (n_x. n_y) DBMS_OUTPUT.PUT_LINE (n_z) END /
Nous pouvons également appeler la fonction dans une instruction SELECT. Maintenant que nous savons comment utiliser les fonctions en PL / SQL, essayons de comprendre comment nous travaillons avec les procédures en PL / SQL.
Procédure PL / SQL
Une procédure est essentiellement un bloc qui effectue une tâche spécifique. À l'aide d'une procédure, nous pouvons encapsuler ou encapsuler une logique métier complexe et la réutiliser dans la couche application et base de données.
Jetons un coup d'œil à un exemple simple pour comprendre comment la procédure fonctionne en PL / SQL
CRÉER OU REMPLACER LA PROCÉDURE ajuster_salary (in_employee_id IN EMPLOYEES.EMPLOYEE_ID% TYPE, in_percent IN NUMBER) IS BEGIN - mettre à jour le salaire de l'employé METTRE À JOUR employés SET salaire = salaire + salaire * en_pourcentage / 100 WHERE id_employé = id_employé END
Dans l'exemple ci-dessus, nous avons deux paramètres, la procédure ajuste le salaire d'un pourcentage donné et le mot clé UPDATE met à jour la valeur dans les informations de salaire.
En-tête de procédure
La section précédant le mot-clé IS est appelée en-tête de procédure. Voici quelques conseils avec lesquels vous devez vous familiariser lorsque vous travaillez avec des procédures.
schéma - Il s'agit du nom facultatif du schéma auquel appartient la procédure.
Nom - Le nom de la procédure qui doit commencer par un verbe.
paramètres - C'est la liste facultative des paramètres.
AUTHID - Il détermine si la procédure s'exécutera avec le privilège de l'utilisateur actuel ou du propriétaire d'origine de la procédure.
Corps de procédure
qu'est-ce que sérialiser en java
Tout ce qui vient après le mot-clé IS est appelé le corps de la procédure. Nous avons les instructions de déclaration, d'exception et d'exécution dans le corps de la procédure. Contrairement à la fonction, le mot-clé RETURN dans une procédure est utilisé pour arrêter l'exécution et renvoyer le contrôle à l'appelant.
Appel d'une procédure
Voyons comment on peut appeler une procédure en PL / SQL.
EXEC nom_procédure (param1, param2 & hellipparamN)
Nous pouvons appeler les procédures sans paramètres en utilisant simplement le mot-clé EXEC et le nom de la procédure. Maintenant que nous savons comment nous pouvons travailler avec des procédures, essayons de comprendre comment les blocs imbriqués sont utilisés en PL / SQL.
Bloc imbriqué
Un bloc imbriqué n'est rien d'autre qu'une combinaison d'un ou plusieurs blocs PL / SQL pour obtenir un meilleur contrôle sur l'exécution et une gestion exceptionnelle du programme.
Voici un exemple simple de bloc imbriqué.
SET SERVEROUTPUT ON SIZE 1000000 DECLARE n_emp_id EMPLOYEES.EMPLOYEE_ID% TYPE: = & emp_id1 BEGIN DECLARE n_emp_id employee.employee_id% TYPE: = & emp_id2 v_name Employees.first_name% TYPE BEGIN SELECT first_name INTO v_name FROM employee_empid (ID_EMPLOI_EMPLOYE) de l'employé '|| n_emp_id ||' est '|| v_name) EXCEPTION WHEN no_data_found THEN DBMS_OUTPUT.PUT_LINE (' Employee '|| n_emp_id ||' not found ') END END /
Le bloc PL / SQL externe dans l'exemple ci-dessus est connu sous le nom de bloc parent ou bloc englobant, le bloc interne, en revanche, est appelé bloc enfant ou bloc inclus.
Ce n'est pas une bonne idée d'utiliser les variables avec les mêmes noms dans les deux blocs car pendant l'exécution, la variable de bloc enfant écrasera la variable de bloc parent. Cela se produit parce que PL / SQL donne la première priorité à la variable dans son propre bloc.
Étiquette de bloc
Nous pouvons surmonter ce problème avec l'étiquette de bloc qui nous aide à faire des références à des variables à l'intérieur de blocs à l'aide d'une étiquette.
Voici un exemple simple pour montrer comment nous pouvons utiliser une étiquette de bloc.
<>DÉCLARER ... COMMENCER ... FIN
L'utilisation d'une étiquette de bloc permet d'améliorer la lisibilité du code, d'obtenir un meilleur contrôle et de faire des références aux blocs. Maintenant que nous savons comment travailler avec des blocs imbriqués, essayons de comprendre comment fonctionne IF STATEMENT en PL / SQL.
Déclaration IF
PL / SQL a trois instructions IF
SI DONC - C'est le plus simple IF STATEMENT si la condition est vraie les instructions s'exécuteront, si la condition est fausse, il ne fait rien.
SI-PUIS-AUTRE - En cela, la clause ELSE est ajoutée pour une séquence alternative d'instructions.
SI-PUIS-ELSEIF - Cela nous permet d'exécuter plusieurs conditions de test dans une séquence.
Syntaxe IF-THEN
IF condition THEN sequence_of_statements END IF
Syntaxe IF-THEN-ELSE
IF condition THEN sequence_of_if_statements ELSE sequence_of_else_statements END IF
Syntaxe IF-THEN-ELSEIF
IF condition1 THEN sequence_of_statements1 ELSIF condition2 THEN sequence_of_statements2 ELSE sequence_of_statements3 END IF
Maintenant que nous en avons terminé avec IF STATEMENT, regardons l'instruction CASE en PL / SQL.
Déclaration CASE
L'instruction CASE aide essentiellement à exécuter une séquence d'instructions basée sur un sélecteur. Un sélecteur, dans ce cas, peut être n'importe quoi, ce peut être une variable, une fonction ou une simple expression. Voici un exemple simple pour montrer la syntaxe de l'instruction CASE en PL / SQL.
[<>] CASE [TRUE | sélecteur] WHEN expression1 THEN sequence_of_statements1 WHEN expression2 THEN sequence_of_statements2 ... WHEN expressionN THEN sequence_of_statementsN [ELSE sequence_of_statementsN + 1] END CASE [nom_étiquette]
Dans la syntaxe ci-dessus, après le mot-clé CASE vient le sélecteur. PL / SQL n'évaluera le sélecteur qu'une seule fois pour déterminer quelle instruction doit être exécutée.
Le mot clé WHEN est suivi du sélecteur. Si l'expression satisfait le sélecteur, l'instruction correspondante après le mot clé THEN est exécutée.
Maintenant que nous savons comment utiliser une instruction CASE, essayons de comprendre comment nous allons utiliser les instructions de boucle dans le PL / SQL.
Déclaration de boucle
Une instruction de boucle en PL / SQL est une instruction itérative qui vous permet d'exécuter une séquence d'instructions plusieurs fois. Voici un exemple simple pour montrer la syntaxe d'une instruction de boucle en PL / SQL.
LOOP sequence_of_statements END LOOP
Il doit y avoir au moins une instruction exécutable entre les mots clés LOOP et END LOOP.
Boucle avec instruction EXIT
Les instructions EXIT et EXIT when vous permettent de quitter la boucle. L'instruction EXIT WHEN met fin à la boucle de manière conditionnelle tandis que EXIT termine l'exécution de manière inconditionnelle.
LOOP ... EXIT WHEN condition END LOOP
Étiquette de boucle
Une étiquette de boucle est utilisée pour qualifier le nom de la variable de compteur de boucle lorsqu'elle est utilisée dans une boucle imbriquée. Voici la syntaxe d'une étiquette de boucle.
<>LOOP sequence_of_statements END LOOP label
Maintenant que nous savons comment utiliser les instructions de boucle, jetons un œil aux instructions de boucle while pour une meilleure compréhension.
Instruction While Loop
Nous pouvons utiliser l'instruction de boucle WHILE lorsque le nombre d'exécutions n'est pas défini avant le début de l'exécution. La syntaxe suivante est utilisée pour une instruction de boucle WHILE en PL / SQL.
WHILE condition LOOP sequence_of_statements END LOOP
La condition dans la syntaxe est une valeur ou une expression booléenne évaluée comme étant TRUE, FALSE ou NULL. Si la condition est TRUE, les instructions seront exécutées, si elle est FALSE, l'exécution s'arrête et le contrôle passe à l'instruction exécutable suivante.
Maintenant que nous savons comment utiliser une instruction de boucle WHILE, jetons un œil à l'instruction de boucle FOR.
Instruction de boucle For
Une instruction de boucle FOR en PL / SQL nous permet d'exécuter une séquence d'instructions un nombre défini de fois. Voici la syntaxe pour utiliser l'instruction de boucle FOR dans PL / SQL
FOR loop_counter IN [REVERSE] Lower_bound .. Higher_bound LOOP sequence_of_statements END LOOP
PL / SQL crée automatiquement une variable locale loop_counter avec un type de données INTEGER pour la boucle afin que vous n'ayez pas à la déclarer explicitement. La limite inférieure .. la limite supérieure est la plage sur laquelle la boucle se répète. En outre, vous devez avoir au moins une instruction exécutable entre les mots clés LOOP et END LOOP.
Maintenant que nous savons comment utiliser les instructions de boucle en PL / SQL, jetons un œil à la gestion exceptionnelle en PL / SQL.
Manipulation exceptionnelle
En PL / SQL, tout type d'erreur est traité comme une exception. Une exception peut être traitée comme une condition spéciale qui peut changer ou modifier le flux d'exécution. En PL / SQL, il existe deux types d'exceptions.
Exception système - Il est déclenché par l'exécution PL / SQL lorsqu'il détecte une erreur.
java comment utiliser tostring
Exception définie par le programmeur - Ces exceptions sont définies par le programmeur dans une application spécifique.
Définition d'une exception
Une exception en PL / SQL doit être déclarée avant de pouvoir être déclenchée. Nous pouvons définir l'exception en utilisant le mot clé EXCEPTION comme nous l'avons fait dans l'exemple ci-dessous.
EXCEPTION EXCEPTION_NAME
Pour lever une exception, nous utilisons le mot clé RAISE.
RAISE EXCEPTION_NAME
C'était donc tout à propos de PL / SQL, j'espère que cet article vous a aidé à ajouter de la valeur à vos connaissances. Pour plus d'informations sur SQL ou les bases de données, vous pouvez consulter notre liste de lecture complète ici: .
Si vous souhaitez suivre une formation structurée sur MySQL, consultez notre qui vient avec une formation en direct animée par un instructeur et une expérience de projet réelle. Cette formation vous aidera à comprendre MySQL en profondeur et vous aidera à maîtriser le sujet.
Vous avez une question pour nous? Veuillez le mentionner dans la section des commentaires de ' Tutoriel PL / SQL »Et je vous répondrai.