Généralités
• PL/SQL veut dire « Procedural Language extensions to SQL ».
• PL/SQL n’existe pas comme un langage autonome ; il est utilisé à l’intérieur d’autres produits Oracle.
• PL/SQL ajoute les construits de programmation au SQL de façon bien intégrée : dans PL/SQL on peut exécuter des SELECT, DELETE, INSERT et UPDATE contenant des construits PL/SQL, utiliser des opérateurs, des prédicats et des fonctions prédéfinies du SQL, gérer des transactions, etc.
• Types de données prédéfinis :
– BINARY_INTEGER, NUMBER, PLS_INTEGER
– CHAR, LONG, VARCHAR2
– BOOLEAN
– DATE, TIMESTAMP, INTERVAL
– REF <nom TDU>
– BLOB, CLOB, BFILE
• Constructeurs de type
–RECORD
– TABLE OF …
– TABLE OF … INDEX BY …
– VARRAY(limite) OF …
– REF CURSOR
• Types de collection :
– Table imbriquée (TABLE OF <type de données>)
– Tableau (VARRAY(limite) OF <type de données>)
– Tableau associatif (TABLE OF … INDEX BY …)
• Fonctions prédéfinies
• Paquetages prédéfinis
• Structures de contrôle conditionnelle, itérative, etc.
• Mécanisme de curseur : variable curseur, attribut curseur, boucle curseur, etc.
• Traitement d’exceptions (erreurs)
• Paquetage
• Un tableau associatif PL/SQL utilise un index (arbre de recherche) basé sur l’indice des éléments de la table.
• C’est un type de dictionnaire (un ensemble de paires « clé
– valeur » ) déclaré comme suit :
• TYPE nom_t IS TABLE OF element_t [NOT NULL] INDEX BY {BINARY_INTEGER | PLS_INTEGER | VARCHAR2(limite) } ;
• Un tableau associatif est non dense ; ses indices ne sont pas nécessairement contigus.
• Un tableau associatif non initialisé est vide, mais n’est pas NULL.
• Un tableau associatif ne peut pas être stocké comme une valeur de colonne de table dans une base de données.
• Dans PL/SQL, une table imbriquée est représentée par un tableau 1D non borné et non dense (où des trous ont été créés par des DELETE mais gardent encore leur indice).
• Un VARRAY est représenté par un tableau 1D borné et dense (dont les indices sont contigus et inférieurs à un maximum déclaré).
• Il existe plusieurs méthodes prédéfinies pour gérer les tableaux associatifs, les tables imbriquées et les VARRAY en tant que collections. Elles seront décrites plus tard.
Langage PL/SQL Programmation au SQL (146.32 Ko) (Cours PDF)