Exemples de monde Hello dans les procédures stockées Oracle

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'