oracle

Oracle ストアドプロシージャのパラメータ指定方法について

プロシージャの呼び出しには、ごく一般的と思われるパラメータをカンマ区切りで羅列していく方法と、パラメータ名とVALUE値を’ => ‘ で区切って指定する方法の2種類があります。こちら一見違和感ありましたが、慣れるとこちらのほうがわかりやすいですね。パラメータが多くなった場合など特に感じます。

一般的な呼び出し方法(OUTパラメータを持たないケース)
exec PAC01.PRC_OLTEST('テスト1',60)
;
パラメータ名を =>で指定する方法(OUTパラメータを持たないケース)
BEGIN
   PAC01.PRC_OLTEST(
      P_NAME => 'テスト1'
     ,P_NO   => 60
   );
END;
OUTパラメータがある場合「ブロック実行」しないといけません
-- declare句で outパラメータ用の変数を定義する必要があります
declare
vRCODE number;
begin
PAC01.PRC_OLTEST('テスト1',45,vRCODE);
DBMS_OUTPUT.PUT_LINE('vRCODE :'||to_char(vRCODE));
end;
=>でパラメータを指定する場合
declare
vRCODE number;

BEGIN
   PAC01.PRC_OLTEST(
      P_NAME => 'テスト1'
     ,P_NO   => 45
     ,P_RCODE => vRCODE
   );
   DBMS_OUTPUT.PUT_LINE('vRCODE :'||to_char(vRCODE));
END;
スポンサーリンク
タイトルとURLをコピーしました