ホームページ > 運用・保守 > Linuxの運用と保守 > Oracle による PL/SQL の使用方法

Oracle による PL/SQL の使用方法

PHPz
リリース: 2023-04-17 11:24:00
オリジナル
918 人が閲覧しました

PL/SQL は Oracle データベースのプログラミング言語であり、ストアド プロシージャ、トリガー、関数、パッケージなどの作成に使用できます。この記事では、Oracle が PL/SQL をどのように使用するかを紹介します。

1. ストアド プロシージャを作成する

ストアド プロシージャは SQL ステートメントの集合であり、カスタム関数とみなすことができます。ストアド プロシージャを使用すると、複雑な SQL クエリが簡素化され、データベースのパフォーマンスが向上します。

Oracle では、ストアド プロシージャを作成するための構文は次のとおりです。

CREATE OR REPLACE PROCEDURE procedure_name
(parameter1 datatype, parameter2 datatype,....)
IS
BEGIN
   statement1;
   statement2;
   ...
END;
/
ログイン後にコピー

ここで、CREATE OR REPLACE PROCEDURE はストアド プロシージャの作成または置換を表し、procedure_name はストアド プロシージャの名前を表します。parameter1およびparameter2は入力パラメータであり、datatypeはパラメータのデータ型を示します。 IS と BEGIN の間にはストアド プロシージャの主要部分があり、一連の SQL ステートメントが含まれています。 END はストアド プロシージャの終了を示します。

次は、2 つの数値の合計を計算する簡単なストアド プロシージャの例です。

CREATE OR REPLACE PROCEDURE addition
(num1 IN NUMBER, num2 IN NUMBER, sum OUT NUMBER)
IS
BEGIN
  sum := num1 + num2;
END;
/
ログイン後にコピー

上の例では、addition がストアド プロシージャの名前であり、num1 と num2 はその 2 つの数値です。 inputs パラメータ、sum は出力パラメータです。ストアド プロシージャの主要部分で、 sum := num1 num2; ステートメントを使用して 2 つの数値の合計を計算し、その結果を出力パラメーターの sum に割り当てます。

2. トリガーの作成

トリガーとは、データベース内で自動的に実行されるプログラムで、データベースに対するさまざまな操作 (データの挿入、更新、削除など) を行うときに使用できます。トリガーイベントが発生します。トリガーは、データの監査とログ記録によく使用されます。

Oracle では、トリガーを作成するための構文は次のとおりです。

CREATE OR REPLACE TRIGGER trigger_name
BEFORE/AFTER INSERT/UPDATE/DELETE
ON table_name
FOR EACH ROW
BEGIN
   statement1;
   statement2;
   ...
END;
/
ログイン後にコピー

このうち、CREATE OR REPLACE TRIGGER はトリガーの作成または置換を表し、trigger_name はトリガーの名前を表し、BEFORE はトリガーの名前を表します。 /AFTER はトリガー時間を表します。INSERT/UPDATE/DELETE は文字をトリガーする操作を示し、table_name はトリガーに対応するテーブルを示し、FOR EACH ROW はトリガー内のステートメントがデータ行ごとに実行されることを示します。

以下は、データの挿入時に挿入時間を記録するための簡単なトリガーの例です:

CREATE OR REPLACE TRIGGER insert_time
BEFORE INSERT
ON customer
FOR EACH ROW
BEGIN
  :new.created_at := sysdate;
END;
/
ログイン後にコピー

上の例では、insert_time はトリガーの名前であり、BEFORE INSERT はデータが挿入されたときのことを意味します。が挿入されます。 トリガーを実行する前に、customer はトリガーに対応するテーブル名です。トリガーの主要部分で、 new.created_at := sysdate; ステートメントを使用して、挿入されたデータの created_at フィールドに現在時刻を割り当てます。

3. 関数の作成

関数は、0 個以上のパラメータを入力として受け入れ、出力として値を返すことができる戻り値を持つ PL/SQL プログラム ユニットです。関数を使用すると、ロジックの一部をカプセル化でき、コードがより読みやすく、保守しやすくなります。

Oracle では、関数を作成するための構文は次のとおりです。

CREATE OR REPLACE FUNCTION function_name
(return_type IN OUT datatype,
parameter1 datatype, parameter2 datatype,....)
RETURN return_datatype
IS
BEGIN
  statement1;
  statement2;
  ...
  RETURN return_value;
END;
/
ログイン後にコピー

このうち、CREATE OR REPLACE FUNCTION は関数の作成または置換を意味し、function_name は関数の名前を意味し、return_type は関数の名前を意味します。戻り値のタイプ、parameter1、parameter2 は入力パラメータ、datatype はパラメータのデータ型を示し、RETURN return_datatype は戻り値のデータ型を示します。関数の本体で RETURN return_value ステートメントを使用して、計算結果を呼び出し元に返します。

以下は、2 つの数値の積を計算する簡単な関数の例です。

CREATE OR REPLACE FUNCTION multiplication(x IN NUMBER, y IN NUMBER)
RETURN NUMBER
IS
BEGIN
  RETURN x * y;
END;
/
ログイン後にコピー

上の例では、乗算が関数の名前であり、x と y は 2 つの入力パラメーターです。 RETURN NUMBER は、戻り値のデータ型が NUMBER であり、戻り値が x*y の結果であることを意味します。

4. パッケージの作成

パッケージは、PL/SQL プログラム単位のセットを格納するプログラム モジュールであり、関数、ストアド プロシージャ、変数、定数などの関連するプログラム単位をカプセル化できます。 1つのパッケージにまとめました。パッケージを使用すると、プログラムがより読みやすく、保守しやすくなります。

Oracle では、パッケージを作成するための構文は次のとおりです。

CREATE OR REPLACE PACKAGE package_name
IS
  /* 声明变量、常量和异常 */
  ...
  /* 声明存储过程和函数 */
  PROCEDURE procedure_name;
  FUNCTION function_name RETURN NUMBER;
END;
/

CREATE OR REPLACE PACKAGE BODY package_name
IS
  /* 实现存储过程和函数 */
  PROCEDURE procedure_name
  IS
  BEGIN
    /* 存储过程的逻辑处理 */
  END;
  FUNCTION function_name
  RETURN NUMBER
  IS
  BEGIN
    /* 函数的逻辑处理 */
    RETURN 0;
  END;
END;
/
ログイン後にコピー

このうち、CREATE OR REPLACE PACKAGE はパッケージの作成または置換を意味し、package_name はパッケージの名前を意味し、IS はパッケージの名前を意味しますEND はパッケージの宣言部分を意味し、END はパッケージの終了を意味し、CREATE OR REPLACE PACKAGE BODY はパッケージ本体の作成または置換を意味し、package_name はパッケージの名前を意味します。

上記は、Oracle による PL/SQL の使用方法の簡単な紹介です。PL/SQL を通じて、ストアド プロシージャ、トリガー、関数、パッケージなどのプログラム ユニットを作成し、データベース操作や論理処理を実装できます。

以上がOracle による PL/SQL の使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート