Académique Documents
Professionnel Documents
Culture Documents
Objectifs du cours
1. Les sous-programmes déclarés dans un bloc anonyme: Procédure et
fonctions.
Introduction.
▪ les blocs anonymes sont des blocs PL/SQL exécutables non
nommés. Etant donné qu'ils n'ont pas de nom, ils ne peuvent
être ni réutilisés, ni stockés au niveau du serveur ORACLE.
▪ Les procédures et fonctions sont des variables pouvant être
déclarées dans un bloc ANONYME PL/SQL.
▪ Les procédures et fonctions stockées sont des blocs PL/SQL
nommés. Elles sont également appelées sous-programmes.
Ces sous-programmes sont compilés et stockés dans la base
de données.
57
Pas d'appel possible par d'autres Appel possible par d'autres applications,
applications car ils sont nommés
Ecrire une fonction stockée qui prend en paramètre l’id de l’employé et qui
retourne le nom du département auquel il est associé.
▪ Les fonctions sont appelées soit dans une requête SQL soit dans
un bloc anonyme PL/SQL soit dans le corps d’un autre objet.
▪ Si la fonction n’est pas appelée directement dans un requête
SQL, il faut créer une variable hôte pour y stocker la valeur
retournée.
▪ Lors de l’exécution, la variable hôte est initialisée avec la valeur
renvoyée par le RETURN. Une fonction peut accepter plusieurs
paramètres IN mais elle ne doit retourner qu’une seule valeur.
62
RQ: Le mot DECLARE n’existe pas; les variables sont déclarées entre
IS et BEGIN
‰
63
1.
DECLARE 2.
Vsql varchar2(100); CREATE OR REPLACE PROCEDURE add_dept
BEGIN IS
)’; BEGIN
3.
CREATE OR REPLACE PROCEDURE proc_alterDept
(nom_col varchar2, type_col varchar2)
IS
vsql varchar2(100):='alter table DEPT add (';
BEGIN
vsql:=vsql||nom_col||' '||type_col||')';
dbms_output.put_line(vsql);
execute immediate vsql;
END;
/
68
BEGIN
add_dept; OU EXECUTE add_dept ;
END;
/
RQ:
▪ une procédure doit être appelée dans un bloc anonyme et non
pas dans une requête SQL sinon Directement avec la commande
EXECUTE.
69