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 vongetDBUSERByUserIdangezeigt.