OracleストアドプロシージャのSELECT INTOの例
OracleデータベースでのSELECT INTOストアドプロシージャの例を次に示します。
1. テーブルSQLスクリプト
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. ストアドプロシージャ
ストアドプロシージャは、SELECT INTOメカニズムを使用して、一致した値を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. PL / SQLからの呼び出し
PL / SQLから次のように呼び出します。
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
userId = 1001のレコードは、getDBUSERByUserId
ストアドプロシージャを介して表示されます。