OUTPUTパラメータありファンクション
outputパラメータのあるファンクションを実行するにはSQLからの直接実行できません。プロシージャ内での利用や、無名ブロックからの実行になります。
OUTPUTパラメータありファンクションサンプル
CREATE OR REPLACE FUNCTION testfunc01 ( USR_ID IN VARCHAR2 ,PASSWORD IN VARCHAR2 ,OUT_MESSAGE OUT VARCHAR2 ) RETURN number IS vRetCode number := 0; BEGIN DBMS_OUTPUT.PUT_LINE('USR_ID:' || USR_ID||' PASSWORD:'||PASSWORD ); if USR_ID = 'sooni' then OUT_MESSAGE := 'いらっしゃい'; else OUT_MESSAGE := 'さようなら'; end if; RETURN vRetCode; END; /
OUTPUTパラメータありファンクションの実行例
SET SERVEROUTPUT ON DECLARE out_message VARCHAR2(20); ret number; BEGIN ret := testfunc01('sooni','pass',out_message); DBMS_OUTPUT.PUT_LINE('ret:'||ret); DBMS_OUTPUT.PUT_LINE('message:'||out_message); END ; /
SQL> SET SERVEROUTPUT ON
SQL>
SQL> DECLARE
2 out_message VARCHAR2(20);
3 ret number;
4 BEGIN
5 ret := testfunc01('sooni','pass',out_message);
6 DBMS_OUTPUT.PUT_LINE('ret:'||ret);
7 DBMS_OUTPUT.PUT_LINE('message:'||out_message);
8 END ;
9 /
USR_ID:sooni PASSWORD:pass
ret:0
message:いらっしゃい
PL/SQLプロシージャが正常に完了しました。
SQL>