Exemple de procédure stockée Oracle SELECT INTO

Exemple de procédure stockée Oracle SELECT INTO

Voici un exemple de procédure stockée SELECT INTO dans la base de données Oracle.

1. Script SQL de table

Script de création de table DBUSER.

CREATE TABLE DBUSER (
  USER_ID       NUMBER (5)    NOT NULL,
  USERNAME      VARCHAR2 (20)  NOT NULL,
  CREATED_BY    VARCHAR2 (20)  NOT NULL,
  CREATED_DATE  DATE          NOT NULL,
  PRIMARY KEY ( USER_ID )
 )

2. Procédure stockée

Une procédure stockée utilise le mécanisme SELECT INTO pour affecter les valeurs correspondantes aux paramètres OUT.

CREATE OR REPLACE PROCEDURE getDBUSERByUserId(
       p_userid IN DBUSER.USER_ID%TYPE,
       o_username OUT DBUSER.USERNAME%TYPE,
       o_createdby OUT  DBUSER.CREATED_BY%TYPE,
       o_date OUT DBUSER.CREATED_DATE%TYPE)
IS
BEGIN

  SELECT USERNAME , CREATED_BY, CREATED_DATE
  INTO o_username, o_createdby,  o_date
  from  DBUSER WHERE USER_ID = p_userid;

END;
/

3. Appels de PL / SQL

Appel de PL / SQL comme ceci:

DECLARE
   o_username DBUSER.USERNAME%TYPE;
   o_createdby DBUSER.CREATED_BY%TYPE;
   o_date DBUSER.CREATED_DATE%TYPE;
BEGIN

   getDBUSERByUserId(1001,o_username,o_createdby,o_date);

   DBMS_OUTPUT.PUT_LINE('username :  ' || o_username);
   DBMS_OUTPUT.PUT_LINE('createdby :  ' || o_createdby);
   DBMS_OUTPUT.PUT_LINE('createddate :  ' || o_date);

END;
/

Result
L'enregistrement avec userId = 1001 est affiché via la procédure de stockage degetDBUSERByUserId.