Oracle は、複雑なビジネス ロジックを実装するストアド プロシージャの使用をサポートする、非常に人気のあるリレーショナル データベース管理システムです。ストアド プロシージャは、データベースに保存されたプリコンパイル済みのコードであり、一連の操作を実行するために呼び出すことができるため、コードの複雑さが簡素化され、効率が向上します。この記事では、Oracle でストアド プロシージャを呼び出す方法について説明します。
まず、データベースにストアド プロシージャを定義する必要があります。ストアド プロシージャは、PL/SQL または SQL 言語を使用して作成できます。 PL/SQL におけるストアド プロシージャの基本構文は次のとおりです。
CREATE [OR REPLACE] PROCEDURE procedure_name [ (parameter_name [IN | OUT | IN OUT] type [, ...]) ] IS [declaration_section] BEGIN executable_section [EXCEPTION exception_section] END [procedure_name];
このうち、procedure_name はストアド プロシージャの名前、parameter_name はストアド プロシージャのパラメータ名、type はストアド プロシージャのデータ型です。パラメータ、declaration_section は宣言部分、executable_section は実行可能部分、Exception_section は例外処理部分です。
たとえば、次の単純なストアド プロシージャは、employees テーブル内の従業員 ID に基づいて従業員の個人情報をクエリするために使用されます。
CREATE OR REPLACE PROCEDURE get_employee_info (employee_id IN NUMBER, name OUT VARCHAR2, email OUT VARCHAR2) IS BEGIN SELECT first_name || ' ' || last_name, email INTO name, email FROM employees WHERE employee_id = get_employee_info.employee_id; END;
このストアド プロシージャでは、3 つのストアド プロシージャを定義します。パラメータ:employee_id は入力パラメータ、name と email は出力パラメータです。実行可能部分では、SELECT ステートメントを使用して従業員テーブルから従業員の名前と電子メールを取得し、それらを出力パラメーターに保存します。
ストアド プロシージャを定義したら、他のプログラムでそれを呼び出すことができます。ストアド・プロシージャを呼び出すには、SQL Developer、PL/SQL Developer、コマンドライン・インタフェースの使用など、いくつかの方法があります。
SQL Developerでは、次の構文を使用してストアド・プロシージャを呼び出すことができます:
DECLARE variable_name1 datatype; variable_name2 datatype; BEGIN procedure_name(parameter_value1, parameter_value2, ..., parameter_valueN); variable_name1 := parameter_valueX; variable_name2 := parameter_valueY; END;
その中で、variable_nameは出力パラメータ値を格納するために使用される変数で、datatypeはデータ型です。およびparameter_valueは入力パラメータ、value、parameter_valueX、およびparameter_valueYは出力パラメータに保存される値です。
たとえば、次のコマンドを使用して、上記の get_employee_info ストアド プロシージャを呼び出すことができます:
DECLARE name VARCHAR2(30); email VARCHAR2(50); BEGIN get_employee_info(100, name, email); DBMS_OUTPUT.PUT_LINE('Name: ' || name); DBMS_OUTPUT.PUT_LINE('Email: ' || email); END;
この例では、実行可能部分で DBMS_OUTPUT.PUT_LINE ステートメントを使用して、次の値を出力します。出力パラメータ。
さらに、PL/SQL Developerでは、次の構文を使用してストアド プロシージャを呼び出すことができます。
VARIABLE variable_name1 datatype; VARIABLE variable_name2 datatype; EXECUTE procedure_name(parameter_value1, parameter_value2, ..., parameter_valueN); PRINT variable_name1; PRINT variable_name2;
コマンドライン インタフェースでは、次のSQL文を使用してストアド プロシージャを呼び出すことができます。 :
BEGIN procedure_name(parameter_value1, parameter_value2, ..., parameter_valueN); END;
ストアド プロシージャを使用する主な利点の 1 つは、コードの複雑さを軽減できることです。ストアド プロシージャは、複雑なロジックを 1 つのユニットにカプセル化して、コードの作成とメンテナンスを簡素化できます。さらに、ストアド プロシージャはプリコンパイルされているため、複数の実行にわたってより高速に実行できるため、パフォーマンスが向上します。
さらに、ストアド プロシージャは、ある程度のセキュリティも提供します。ストアド プロシージャはクライアントではなくデータベース サーバー上で実行できます。つまり、ストアド プロシージャのコードはネットワーク経由でクライアントに送信されず、機密情報が漏洩することはありません。
つまり、ストアド プロシージャは、データベース アプリケーションのパフォーマンスとセキュリティをある程度向上させることができる、Oracle の非常に便利な機能です。上記のメソッドを通じてストアド プロシージャを呼び出し、それを将来のタスクで使用して複雑な操作を実行できます。
以上がOracle でストアド プロシージャを呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。