Oracle データベースでは、ストアド プロシージャは、特定のタスクを実行するために使用されるプリコンパイルされた PL/SQL コード ブロックです。入力パラメータを受け取って出力値を返し、一連の SQL ステートメントを実行できます。ストアド プロシージャを使用すると、複雑なデータベース操作が大幅に簡素化され、データベースのパフォーマンスが向上します。この記事では、Oracle Insert ストアド プロシージャの作成方法を紹介します。
ストアド プロシージャの作成
Oracle では、CREATE PROCEDURE ステートメントを使用してストアド プロシージャを作成します。基本的な例を次に示します。
CREATE OR REPLACE PROCEDURE sp_Insert ( p_id NUMBER, p_name VARCHAR2, p_desc VARCHAR2 ) AS BEGIN INSERT INTO mytable (id, name, description) VALUES (p_id, p_name, p_desc); COMMIT; END;
上の例では、CREATE OR REPLACE を使用して sp_Insert という名前のストアド プロシージャを作成しました。このストアド プロシージャには、p_id、p_name、p_desc の 3 つの入力パラメータがあります。ストアド プロシージャで INSERT INTO ステートメントを使用して、入力パラメータを mytable テーブルに挿入しました。最後に、COMMIT ステートメントを使用してトランザクションをコミットします。
ストアド プロシージャの呼び出し
EXECUTE ステートメントを使用してストアド プロシージャを呼び出すことができます。以下に例を示します。
EXECUTE sp_Insert(1, 'John', 'Description');
上の例では、sp_Insert という名前のストアド プロシージャを呼び出し、それに 3 つのパラメータを渡しました。ストアド プロシージャが実行されると、mytable テーブルに新しく挿入されたデータ行が表示されます。
ストアド プロシージャでの例外処理
ストアド プロシージャでは、EXCEPTION ステートメントを使用して例外を処理できます。以下に例を示します。
CREATE OR REPLACE PROCEDURE sp_Insert ( p_id NUMBER, p_name VARCHAR2, p_desc VARCHAR2 ) AS BEGIN INSERT INTO mytable (id, name, description) VALUES (p_id, p_name, p_desc); COMMIT; EXCEPTION WHEN OTHERS THEN ROLLBACK; DBMS_OUTPUT.PUT_LINE('Error: ' || SQLCODE || ' - ' || SQLERRM); END;
上の例では、EXCEPTION ステートメントを使用して例外をキャッチします。例外が発生した場合、ROLLBACK 文を使用してトランザクションをロールバックし、異常な SQLCODE および SQLERRM 情報を DBMS_OUTPUT.PUT_LINE メソッドを通じて出力します。
概要
Oracle Insert ストアド プロシージャを使用すると、複雑なデータベース操作が大幅に簡素化され、データベースのパフォーマンスが向上します。ストアド プロシージャでは、入力パラメータと出力値を使用して、一連の SQL ステートメントを実行できます。同時に、例外処理ステートメントを使用して異常な状況を処理することもできます。もちろん、ストアド プロシージャを作成するときは、ストアド プロシージャの有効性と信頼性を確保するために、適切な設計原則を念頭に置く必要があります。
以上がOracle Insert ストアド プロシージャを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。