ホームページ  >  記事  >  データベース  >  Oracle のストアド プロシージャ構文を紹介する記事

Oracle のストアド プロシージャ構文を紹介する記事

PHPz
PHPzオリジナル
2023-04-04 10:39:501779ブラウズ

Oracle は、強力なストアド プロシージャ機能を備えたリレーショナル データベース管理システムです。開発者は、ストアド プロシージャの構文をマスターすることによってのみ、ビジネス ニーズに応じた効率的、シンプル、かつ安全なデータベース操作を実現できます。この記事では、Oracle のストアド プロシージャの構文を紹介します。

1. ストアド プロシージャの概要

Oracle では、ストアド プロシージャは、PL/SQL 言語で記述された一連の SQL ステートメントと制御構造であるデータベース オブジェクトです。これは複数の SQL ステートメントをカプセル化する再利用可能なプログラムであり、複雑なビジネス ロジックを実装し、データベース操作の効率を大幅に向上させることができます。

ストアド プロシージャには次の特性があります。

  1. 入力パラメータを受け取り、出力パラメータを返すことができます
  2. 1 つのトランザクションで複数の SQL ステートメントを実行できます
  3. Oracle サーバー上に保存され、複数のアプリケーションで共有可能
  4. 呼び出し時に実行可能、またはプリコンパイル後に実行可能

2. ストアド プロシージャの作成と作成 実行

Oracle では、ストアド プロシージャを作成するには CREATE PROCEDURE ステートメントを使用する必要があります。構文は次のとおりです:

CREATE [OR REPLACE] PROCEDURE プロシージャ名
[(parameter1 [IN | OUT] | IN OUT] type1, [parameter2 [IN | OUT | IN OUT] type2,...])]
IS
--変数の宣言
BEGIN
--SQL ステートメントの実行
END;

このうち、

  1. OR REPLACE は、ストアド プロシージャが既に存在する場合は置き換えて作成し、そうでない場合は新しいストアド プロシージャを直接作成することを意味します。
  2. procedure_name はストアド プロシージャの名前を表します。
  3. parameter はストアド プロシージャの入力パラメータまたは出力パラメータを表し、複数存在する可能性があります。
  4. type は、VARCHAR2、NUMBER、DATE などのパラメータのタイプを示します。
  5. IS は、ストアド プロシージャが正式に実行を開始することを示します。
  6. BEGIN と END の間はストアド プロシージャの主要部分であり、SQL 文または PL/SQL コードになります。

たとえば、次は単純なストアド プロシージャです:

CREATE OR REPLACE PROCEDURE HelloWorld
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello, World !' );
END;

ストアド プロシージャを実行するには、EXECUTE または EXEC ステートメントを使用する必要があります。構文は次のとおりです:

EXECUTE プロシージャ名;

または:

EXEC プロシージャ名;

例:

EXECUTE HelloWorld;

または:

EXEC HelloWorld;

3. ストアド プロシージャの変数と合計 制御構造

ストアド プロシージャでは、変数と制御構造を使用して、より複雑なビジネス ロジックを実装できます。

  1. 変数

Oracle の変数には次のタイプがあります:

  • CHAR および VARCHAR2: 文字と文​​字列を格納するために使用されます。
  • NUMBER: 数値型を格納するために使用されます。
  • DATE: 日付と時刻のタイプを保存するために使用されます。

変数を宣言する構文は次のとおりです:

DECLARE
variable_name variable_type [NOT NULL] [:= value];

例:

DECLARE
v_emp_id NUMBER := 1001;
v_emp_name VARCHAR2(20) := 'John';
v_salary NUMBER(6,2);

  1. Control構造

Oracleは、IF、CASE、LOOPなどを含むさまざまな制御構造をサポートしています。

IF ステートメントは、条件に基づいてさまざまな操作を実行するために使用されます。構文は次のとおりです:

IF 条件 THEN
ステートメント;
[ELSIF 条件 THEN
ステートメント; ]
[ELSE
ステートメント;]
END IF;

例:

IF v_salary > 5000 THEN
v_bonus := v_salary * 0.1;
ELSIF v_salary > 3000 THEN
v_bonus := v_salary * 0.05;
ELSE
v_bonus := 0;
END IF;

CASE ステートメントは、式のさまざまな値に基づく給与。さまざまな操作を実行するには、構文は次のとおりです:

CASE 式
WHEN value1 THEN
ステートメント;
WHEN value2 THEN
ステートメント;
...
[ELSE
ステートメント;]
END CASE;

例:

CASE v_grade
WHEN 'A' THEN
v_gpa := 4.0;
WHEN 'B' THEN
v_gpa := 3.0;
ELSE
v_gpa := 2.0;
END CASE;

LOOP ステートメント

LOOP
ステートメント;
[EXIT | EXIT WHEN 条件;]
[CONTINUE | CONTINUE WHEN 条件;]## は、特定の操作を繰り返し実行するために使用されます。 #END LOOP;

例:

LOOP

v_total := v_total v_salary;
EXIT WHEN v_salary = 0;
END LOOP;

4. ストアド プロシージャの呼び出し

Oracle では、PL /SQL コードまたは SQL ステートメントを使用してストアド プロシージャを呼び出すことができます。例:

    PL/SQL コード呼び出し:
DECLARE

v_emp_name VARCHAR2(20);
BEGIN
GET_EMPLOYEE_NAME(1001, v_emp_name) ;
DBMS_OUTPUT.PUT_LINE('従業員名は ' || v_emp_name);
END;

    SQL ステートメント呼び出し:
SQL> VARIABLE v_emp_name VARCHAR2 ( 20);

SQL> EXECUTE GET_EMPLOYEE_NAME(1001, :v_emp_name);
SQL> PRINT v_emp_name;

summary

この記事の導入を通じて、次のことを学びました。 Oracle のストアド プロシージャの構文。ストアド プロシージャの作成と実行、変数と制御構造の使用、ストアド プロシージャの呼び出しが含まれます。開発者としてこれらの構文をマスターすると、データベース操作の効率が大幅に向上します。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。