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>

