Oracle
 sql >> Base de données >  >> RDS >> Oracle

Structure et types de blocs Oracle PLSQL

Ici, nous allons discuter de la structure et des types de blocs Oracle PLSQL

Qu'est-ce que PL/SQL


PL/SQL est l'extension propriétaire d'Oracle pour SQL qui permet des capacités de langage procédural. Il offre toutes les fonctionnalités de l'ingénierie logicielle moderne telles que l'encapsulation des données, la gestion des exceptions, le masquage des informations et l'orientation des objets

Pourquoi utiliser PLSQL

1) Intégration avec des outils de développement tels que les formulaires Oracle, les rapports

2) Plusieurs déclarations peuvent être regroupées en un seul bloc plsql et envoyées au serveur oracle, ce qui réduit le trafic réseau

3) Développement de programmes modulaires :décomposer la logique/le problème complexe en un ensemble de modules logiques gérables et bien définis et les implémenter à l'aide de blocs

4) Portabilité :comme il est natif du serveur Oracle, il peut être déplacé facilement

5) Il fournit des structures de contrôle de langage procédural telles que if condition, looping

6) Il a la capacité de gérer les erreurs et de lever des exceptions en fonction de celles-ci

Structure de bloc PLSQL

Un bloc plsql est composé de trois sections Declare, executable et exception.

DÉCLARER (Facultatif) – cette section contient des variables, des constantes, des curseurs et des exceptions définies par l'utilisateur.
BEGIN(Obligatoire)

EXÉCUTABLE – cette section contient toutes les instructions SQL.

EXCEPTION (optionnel)- cette section contient les gestionnaires d'erreurs.

FIN(obligatoire);

Donc, déclarer et la section d'exception sont facultatifs.

Exemple de structure de bloc

DECLARE 
 l_number  NUMBER;
 BEGIN
 l_number := 1;
 Dbms_output.put_line(l_number);
 Exception
 When others then
 Dbms_output.put_line(‘Exception occurred’);
 END;
 /

Points importants à noter

1) Toutes les variables et constantes sont définies dans la section declare

2) Placez un point-virgule; à la fin de l'instruction sql ou de l'instruction de contrôle plsql

3) En PL/SQL, toutes les erreurs sont gérées dans le bloc Exception.

4) Begin et End sont des instructions obligatoires indiquant le début et la fin du bloc PL/SQL.

5) Les variables et les constantes doivent d'abord être déclarées avant de pouvoir être utilisées.

6) Les valeurs peuvent être affectées aux variables directement à l'aide de l'opérateur d'affectation ":=", au moyen d'une instruction SELECT … INTO ou Lorsqu'il est utilisé comme paramètre OUT ou IN OUT d'une procédure.

7) Les mots-clés de section Declare, Begin , exception ne sont pas suivis d'un point-virgule

8) End et toutes les autres instructions plsql nécessitent un point-virgule pour terminer l'instruction

Types de blocs PLSQL

Anonyme :Les blocs anonymes sont des blocs sans nom. Ils sont déclarés au point de l'application où ils doivent être exécutés

DECLARE 
 l_number  NUMBER;
 BEGIN
 l_number := 1;
 Dbms_output.put_line(l_number);
 Exception
 When others then
 Dbms_output.put_line(‘Exception occurred’);
 END;
 /

Fonction :Ce sont des noms de blocs PLSQL qui peuvent accepter des paramètres et calculer une fonction et la renvoyer. Il peut être stocké dans le serveur ou l'application Oracle

Syntax
FUNCTION name [(parameter[, parameter, …])] RETURN datatype IS
 [local declarations]
 BEGIN
 executable statements
 [EXCEPTION exception handlers]
 END [name];
 Example
 Create or replace function FUNC return number
 As
 l_number  NUMBER;
 BEGIN
 Select count(*) into l_number  from emp;
 return(l_number)
 END;
 /

Procédure :Ce sont des noms de bloc PLSQL qui peuvent accepter des paramètres et traiter certaines informations et peuvent ou peuvent retourner des valeurs. Il peut être stocké dans le serveur ou l'application Oracle

Syntax
 PROCEDURE name [(parameter[, parameter, …])] IS
 [local declarations]
 BEGIN
 executable statements
 [EXCEPTION exception handlers]
 END [name];
 Example
 Create or replace procedure  remove_emp (emp_id  number)
 As
 BEGIN
 Delete from emp where employee_id=emp_id;
 END;
 /

Différence entre fonction et procédure

Fonction Procédure
La fonction doit renvoyer une valeur La procédure n'est pas nécessaire
Syntaxe  Syntaxe
NOM DE LA FONCTION (liste d'arguments …..) Le type de données de retour est Nom de la PROCEDURE (liste des paramètres…..)
déclarations de variables locales est
Commencer déclarations de variables locales
instructions exécutables COMMENCER
Exception Instructions exécutables.
gestionnaires d'exécution Exception.
Fin ; gestionnaires d'exceptions
  fin ;
   
La fonction peut être utilisée en SQL avec certaines restrictions La procédure ne peut pas être appelée directement depuis SQL.

Syntaxe et directives des blocs Oracle PLSQL

1) Les littéraux de caractère et de date doivent être placés entre guillemets simples

2) Placez des commentaires sur plusieurs lignes entre /* et */

3)  La plupart des fonctions sql peuvent être utilisées dans  PLSQL. Nous avons la fonction char, date, number disponible dans PLSQL, tout comme SQL

4) les groupes par fonction ne sont pas disponibles dans PLSQL. Il ne peut être utilisé que dans l'instruction sql du PLSQL

5) Nous devons utiliser une indentation appropriée pour rendre le code lisible

6) Il est recommandé d'écrire l'instruction DML en majuscules, les mots-clés PLSQL, les types de données en majuscules et de mettre les identifiants et les paramètres en minuscules pour une meilleure lisibilité et maintenance

Liens connexes

Documentation Oracle PLSQL
Question d'entretien Oracle PlSQL la plus fréquemment posée
Oracle sql et plsql
comment écrire des requêtes sql