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;/….