oracle

Oracle OUTパラメータファンクションの実行

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>
スポンサーリンク