Beispiel für eine gespeicherte Oracle-Prozedur SELECT INTO
Hier ist ein Beispiel für eine gespeicherte Prozedur von SELECT INTO in der Oracle-Datenbank.
1. Tabelle SQL-Skript
Skript zur Erstellung einer DBUSER-Tabelle.
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. Gespeicherte Prozedur
Eine gespeicherte Prozedur verwendet den SELECT INTO-Mechanismus, um die übereinstimmenden Werte den OUT-Parametern zuzuweisen.
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. Aufrufe von PL / SQL
Aufruf von PL / SQL wie folgt:
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
Datensatz mit Benutzer-ID = 1001 wird über die Speicherprozedur vongetDBUSERByUserId
angezeigt.