Exemples de procédures stockées Oracle Hello World
Liste d'exemples rapides pour créer des procédures stockées (paramètre IN, OUT, IN OUT et Cursor) dans la base de données Oracle. PL/SQL code is self-explanatory.
1. Bonjour le monde
Une procédure stockée pour imprimer un «Hello World» via DBMS_OUTPUT.
CREATE OR REPLACE PROCEDURE procPrintHelloWorld IS BEGIN DBMS_OUTPUT.PUT_LINE('Hello World!'); END; /
Exécuter
exec procPrintHelloWorld;
Sortie
Hello World!
2. Hello World + Paramètre IN
Une procédure stockée pour accepter un seul paramètre et imprimer le «paramètre Hello World IN» + la valeur du paramètre via DBMS_OUTPUT.
CREATE OR REPLACE PROCEDURE procOneINParameter(param1 IN VARCHAR2) IS BEGIN DBMS_OUTPUT.PUT_LINE('Hello World IN parameter ' || param1); END; /
Exécuter
exec procOneINParameter('example');
Sortie
Hello World IN parameter example
3. Hello World + Paramètre OUT
Une procédure stockée pour générer / affecter la valeur du «paramètre Hello World OUT» au paramètre OUT.
CREATE OR REPLACE PROCEDURE procOneOUTParameter(outParam1 OUT VARCHAR2) IS BEGIN outParam1 := 'Hello World OUT parameter'; END; /
Exécuter
DECLARE outParam1 VARCHAR2(100); BEGIN procOneOUTParameter(outParam1); DBMS_OUTPUT.PUT_LINE(outParam1); END; /
Sortie
Hello World OUT parameter
4. Hello World + Paramètre INOUT
Une procédure stockée pour accepter un paramètre INOUT (genericParam), construire le message de sortie et réattribuer le même nom de paramètre (genericParam).
CREATE OR REPLACE PROCEDURE procOneINOUTParameter(genericParam IN OUT VARCHAR2) IS BEGIN genericParam := 'Hello World INOUT parameter ' || genericParam; END; /
Exécuter
DECLARE genericParam VARCHAR2(100) := 'example'; BEGIN procOneINOUTParameter(genericParam); DBMS_OUTPUT.PUT_LINE(genericParam); END; /
Sortie
Hello World INOUT parameter example
5. Hello World + Curseur
Une procédure stockée, renvoie un curseur de référence et accepte un paramètre IN.
CREATE OR REPLACE PROCEDURE procCursorExample( cursorParam OUT SYS_REFCURSOR, userNameParam IN VARCHAR2) IS BEGIN OPEN cursorParam FOR SELECT * FROM DBUSER WHERE USERNAME = userNameParam; END; /
Exécuter
DECLARE dbUserCursor SYS_REFCURSOR; dbUserTable DBUSER%ROWTYPE; BEGIN procCursorExample(dbUserCursor,'example'); LOOP FETCH dbUserCursor INTO dbUserTable; EXIT WHEN dbUserCursor%NOTFOUND; dbms_output.put_line(dbUserTable.user_id); END LOOP; CLOSE dbUserCursor; END; /
Sortie
List of the user_id which matched username='example'