Oracle はよく知られたリレーショナル データベース管理システムであり、大規模なエンタープライズ レベルのシステムの開発と保守によく使用されます。 Oracle ではストアド プロシージャとトリガーが非常に重要なデータベース オブジェクトであるため、この記事ではその機能と使用方法を紹介します。
1. ストアド プロシージャ
1. 関数
ストアド プロシージャは、コンパイルされてデータベースに保存される一連の SQL ステートメントです。これは関数のように呼び出すことができ、入力パラメーターを受け取り、結果を返します。ストアド プロシージャは、データ クエリ、データ変更、データ バックアップなどのさまざまな複雑な操作を完了できます。これらにより、データベース プログラミングの作業が大幅に簡素化されます。
2. 作成
Oracle では、ストアド プロシージャを作成するには PL/SQL 言語を使用する必要があり、SQL Developer や SQL*Plus などのツールを使用して作成および編集できます。以下はストアド プロシージャを作成する簡単な例です。
CREATE OR REPLACE PROCEDURE p_add (x IN NUMBER, y IN NUMBER, z OUT NUMBER) IS BEGIN z := x + y; END p_add;
上の例では、2 つの入力パラメータ x と y と 1 つの出力パラメータ z を持つ p_add という名前のストアド プロシージャを定義します。ストアド プロシージャの本体で、入力パラメータ x と y を追加し、結果を出力パラメータ z に割り当てます。
3. 呼び出し
ストアド プロシージャを作成した後、それを呼び出すことでその中の SQL ステートメントを実行できます。 PL/SQL でストアド プロシージャを呼び出す方法は 2 つあります。
EXECUTE p_add(1,2,:OUT);
上の例では、p_add ストアド プロシージャという名前のプロシージャを呼び出しました。 、パラメーター 1 と 2 を渡し、OUT パラメーターを使用して結果を出力します。
DECLARE a NUMBER; BEGIN p_add(1,2,a); DBMS_OUTPUT.PUT_LINE('The result is: ' || a); END;
上の例では、PL/SQL ブロックを使用してストアド プロシージャを呼び出し、結果を出力します。
2. トリガー
1. 関数
トリガーは、テーブルに対して INSERT、UPDATE、および DELETE 操作を自動的に実行できる、テーブルに関連付けられた特別なオブジェクトです。いくつかのアクション。トリガーは、データ検証、データ複製、データバックアップなどの操作に使用できます。
2. 作成
Oracle では、トリガーを作成するには PL/SQL 言語を使用する必要がありますが、SQL Developer や SQL*Plus などのツールを使用して作成および編集することもできます。
CREATE OR REPLACE TRIGGER trg_ins_emp BEFORE INSERT ON emp FOR EACH ROW BEGIN :NEW.create_time := SYSDATE; END trg_ins_emp;
上の例では、新しいレコードが emp テーブルに挿入される前に現在時刻を変更する trg_ins_emp という名前のトリガーを定義します。 create_time フィールド。
上記の例では、BEFORE キーワードはデータが挿入される前にトリガーがトリガーされることを示し、FOR EACH ROW は INSERT ステートメントが実行されるたびにトリガーされることを示します。
3. 呼び出し
トリガーを作成した後、手動で呼び出す必要はなく、関連するテーブルに対して INSERT、UPDATE、および DELETE 操作を実行するだけでトリガーをトリガーできます。以下は、INSERT 操作を実行する簡単な例です:
INSERT INTO emp (name, salary) VALUES ('Jack', 5000);
上の例では、emp テーブルにレコードを挿入します。trg_ins_emp という名前のトリガーを作成したため、レコードを挿入するとき、create_time フィールドは次のようになります。現在時刻が自動的に割り当てられます。
3. 概要
ストアド プロシージャとトリガーは Oracle の 2 つの非常に重要なオブジェクトであり、データベース プログラミングの作業を大幅に簡素化します。ストアド プロシージャは複雑な SQL 操作をカプセル化できるため、コードの保守性と再利用性が大幅に向上します。トリガーは、繰り返し作業を避けるために、テーブル操作中に一部の操作を自動的に実行できます。この記事が、読者が Oracle データベースのストアド プロシージャとトリガーをさらに理解するのに役立つことを願っています。
以上がOracle のストアド プロシージャとトリガーの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。