Oracle 12cでプロシージャ(変数あり)を作成する

2021年11月18日

書式

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
CREATE OR REPLACE PROCEDURE <プロシージャ名>(パラメータ IN/OUT 型)
IS
変数宣言
BEGIN
処理コード
END;
CREATE OR REPLACE PROCEDURE <プロシージャ名>(パラメータ IN/OUT 型) IS 変数宣言 BEGIN 処理コード END;
CREATE OR REPLACE PROCEDURE <プロシージャ名>(パラメータ IN/OUT 型)
IS
   変数宣言
BEGIN
   処理コード
END;

ファンクション(値を戻すもの)およびプロシージャ(値を戻さないもの)などのスキーマ・レベルまたはスタンドアロン・サブプログラムは、Oracle Databaseでコンパイルされ、格納されます。
一度コンパイルされると、そのようなサブプログラムはスキーマ・オブジェクトであるストアド・プロシージャまたはストアド・ファンクションになり、Oracle Databaseに接続しているアプリケーションから参照されるかコールされることがあります。

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
CREATE OR REPLACE PROCEDURE testPro(tNo IN NUMBER)
IS
tSum NUMBER;
BEGIN
UPDATE USER_TBL
SET sum = sum + 10
WHERE userNo = tNo;
END;
CREATE OR REPLACE PROCEDURE testPro(tNo IN NUMBER) IS tSum NUMBER; BEGIN UPDATE USER_TBL SET sum = sum + 10 WHERE userNo = tNo; END;
CREATE OR REPLACE PROCEDURE testPro(tNo IN NUMBER)
IS
  tSum NUMBER; 
BEGIN
  UPDATE USER_TBL
  SET sum = sum + 10
  WHERE userNo = tNo;
END;

説明
変数:tNo
プロシージャ名:testPro
プロシージャtestProが変数の値を受け取って、UPDATE構文を実行します

Oracle 12c

Posted by arkgame