Oracle は、強力なストアド プロシージャ機能を備えたリレーショナル データベース管理システムです。開発者は、ストアド プロシージャの構文をマスターすることによってのみ、ビジネス ニーズに応じた効率的、シンプル、かつ安全なデータベース操作を実現できます。この記事では、Oracle のストアド プロシージャの構文を紹介します。
1. ストアド プロシージャの概要
Oracle では、ストアド プロシージャは、PL/SQL 言語で記述された一連の SQL ステートメントと制御構造であるデータベース オブジェクトです。これは複数の SQL ステートメントをカプセル化する再利用可能なプログラムであり、複雑なビジネス ロジックを実装し、データベース操作の効率を大幅に向上させることができます。
ストアド プロシージャには次の特性があります。
2. ストアド プロシージャの作成と作成 実行
Oracle では、ストアド プロシージャを作成するには CREATE PROCEDURE ステートメントを使用する必要があります。構文は次のとおりです:
CREATE [OR REPLACE] PROCEDURE プロシージャ名
[(parameter1 [IN | OUT] | IN OUT] type1, [parameter2 [IN | OUT | IN OUT] type2,...])]
IS
--変数の宣言
BEGIN
--SQL ステートメントの実行
END;
このうち、
たとえば、次は単純なストアド プロシージャです:
CREATE OR REPLACE PROCEDURE HelloWorld
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello, World !' );
END;
ストアド プロシージャを実行するには、EXECUTE または EXEC ステートメントを使用する必要があります。構文は次のとおりです:
EXECUTE プロシージャ名;
または:
EXEC プロシージャ名;
例:
EXECUTE HelloWorld;
または:
EXEC HelloWorld;
3. ストアド プロシージャの変数と合計 制御構造
ストアド プロシージャでは、変数と制御構造を使用して、より複雑なビジネス ロジックを実装できます。
Oracle の変数には次のタイプがあります:
変数を宣言する構文は次のとおりです:
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);
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;
v_total := v_total v_salary;
EXIT WHEN v_salary = 0;
END LOOP;
v_emp_name VARCHAR2(20);
BEGIN
GET_EMPLOYEE_NAME(1001, v_emp_name) ;
DBMS_OUTPUT.PUT_LINE('従業員名は ' || v_emp_name);
END;
SQL> EXECUTE GET_EMPLOYEE_NAME(1001, :v_emp_name);
SQL> PRINT v_emp_name;
以上がOracle のストアド プロシージャ構文を紹介する記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。