ホームページ > データベース > Oracle > Oracle ストアド プロシージャの例

Oracle ストアド プロシージャの例

PHPz
リリース: 2023-05-18 09:30:07
オリジナル
1047 人が閲覧しました

Oracle データベースでは、ストアド プロシージャは、入力パラメータを受け取り、出力パラメータを返すことができる繰り返し可能な SQL コードのブロックです。これは関数に似ていますが、ストアド プロシージャをデータベース内で呼び出して実行できる点が異なり、より複雑でスケーラブルなアプリケーションが可能になります。この記事では、簡単な Oracle ストアド プロシージャの作成方法を紹介し、実際のアプリケーションでストアド プロシージャを使用する方法を示します。

ストアド プロシージャの作成

Oracle では、ストアド プロシージャを作成するには次の手順が必要です。

  1. ストアド プロシージャの構造の作成

ストレージ プロセスの構造には、プロセス名、入力パラメータ、出力パラメータ、プロセス本体の定義が含まれます。次に、単純な Oracle ストアド プロシージャ構造の例を示します。

CREATE OR REPLACE PROCEDURE get_employee_salaries (id IN NUMBER、salary OUT NUMBER)
IS
BEGIN
SELECT給与 INTO給与 FROM従業員WHEREemployee_id = id;
END;

上記の例では、get_employee_salaries はプロセスの名前、id は入力パラメータ、salary は出力パラメータです。

  1. プロセス本体の作成

プロセス本体は、ストアド プロシージャ内の実際のロジックです。この例では、プロセス本体は入力パラメーター ID を使用して、employees テーブルから給与をクエリし、その結果を出力パラメーター Salary に保存します。

  1. ストアド プロシージャのコンパイル

ストアド プロシージャを作成する SQL コードをデータベースに書き込んだ後、コードをコンパイルする必要があります。 Oracle では、これは次のコマンドで実行できます:

SQL> CREATE OR REPLACE PROCEDURE get_employee_salaries (id IN NUMBER,給与 OUT NUMBER)
IS
BEGIN
SELECT給与 INTO給与 FROM従業員WHEREemployee_id = id;
END;
/

このコマンドは、get_employee_salaries という名前のストアド プロシージャを作成します。

ストアド プロシージャの使用方法

ストアド プロシージャを作成したら、アプリケーション内で使用して、必要に応じて呼び出すことができます。上記の例でストアド プロシージャを呼び出す方法の例を次に示します。

DECLARE
emp_salary NUMBER;
BEGIN
get_employee_salaries(100, emp_salary);
DBMS_OUTPUT.PUT_LINE( '従業員 100 人の収入 ' || TO_CHAR(emp_salary));
END;

このコードは、ストアド プロシージャ get_employee_salaries を呼び出し、id 入力パラメーターとして 100 を使用します。結果を emp_salary に保存し、出力に表示します。正常に実行されると、出力は次のようになります。

従業員 100 人の収入 4400

この例は、単純な Oracle ストアド プロシージャの例を示しているだけです。実際、ストアド プロシージャは多くの複雑なタスクを実行し、データベースのスケーラビリティと再現性を実現できます。たとえば、ストアド プロシージャを使用して、複雑なデータ変換、データ クリーニング、レポート生成、ビジネス プロセスの自動化などのタスクを実装できます。

概要

Oracle ストアド プロシージャは、データベース アプリケーションをより柔軟、スケーラブル、効率的にできる非常に強力で便利なツールです。この記事では、単純な Oracle ストアド プロシージャを作成して使用する方法を説明します。実際、ストアド プロシージャはより複雑なタスクを実行し、データベース アプリケーションに強力な機能を提供できます。したがって、Oracle ストアド プロシージャを学習して習得することは、すべてのデータベース開発者が習得しなければならないスキルの 1 つです。

以上がOracle ストアド プロシージャの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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