「Oracle」EXECUTE文でプロシージャを呼び出すサンプル

環境
Oracle Database 11g Release 11.2.0.1.0 – 64bit Production
PL/SQL Release 11.2.0.1.0 – Production

使用例
1.プロシージャを作成します
構文
CREATE OR REPLACE PROCEDURE プロシージャ名(変数1 IN NUMBER,変数2 OUT NUMBER)
処理コード
SQL構文

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> CREATE OR REPLACE PROCEDURE TESTPROC(cftA IN NUMBER,cftB OUT NUMBER)
2 IS
3 n NUMBER := 20;
4 BEGIN
5 cftB := cftA + n;
6 EXCEPTION
7 WHEN OTHERS THEN
8 DBMS_OUTPUT.PUT_LINE('ERROR');
9 END;
10 /
プロシージャが作成されました。
SQL> CREATE OR REPLACE PROCEDURE TESTPROC(cftA IN NUMBER,cftB OUT NUMBER) 2 IS 3 n NUMBER := 20; 4 BEGIN 5 cftB := cftA + n; 6 EXCEPTION 7 WHEN OTHERS THEN 8 DBMS_OUTPUT.PUT_LINE('ERROR'); 9 END; 10 / プロシージャが作成されました。
SQL> CREATE OR REPLACE PROCEDURE TESTPROC(cftA IN NUMBER,cftB OUT NUMBER)
  2  IS
  3      n NUMBER := 20;
  4  BEGIN
  5      cftB := cftA + n;
  6  EXCEPTION
  7      WHEN OTHERS THEN
  8          DBMS_OUTPUT.PUT_LINE('ERROR');
  9  END;
 10  /

プロシージャが作成されました。

2.IN、OUTの引数をパラメータを渡します
構文
variable 変数名 データ型;

IN,OUTの引数にパラメータを設定します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> variable ta number;
SQL> variable tb number;
SQL> EXECUTE :ta := 15;
SQL> variable ta number; SQL> variable tb number; SQL> EXECUTE :ta := 15;
SQL> variable ta number;
SQL> variable tb number;
SQL> EXECUTE :ta := 15;

3.プロシージャを呼び出します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> EXECUTE TESTPROC(:ta,:tb);
PL/SQLプロシージャが正常に完了しました。
SQL> EXECUTE TESTPROC(:ta,:tb); PL/SQLプロシージャが正常に完了しました。
SQL>  EXECUTE TESTPROC(:ta,:tb);

PL/SQLプロシージャが正常に完了しました。

4.変数の値を出力して結果を確認します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> print :tb;
TB
----------
35
SQL> print :tb; TB ---------- 35
SQL> print :tb;

        TB
----------
        35

 

Oracle

Posted by arkgame