Oracle Databaseでは、ストアド・プロシージャは、特定の入力条件下で実行できる事前定義されたSQL文とプログラム・ロジックのセットです。ストアド プロシージャは、ビジネス要件に基づいて作成し、データベースに保存できます。ストアド プロシージャは、バッチ データ処理、ログ記録、自動プロセスなど、さまざまなビジネス シナリオで役立ちます。この記事では主に、Oracle ストアド プロシージャで SQL ステートメントを作成および実行する方法について説明します。
ストアド プロシージャを作成するには、CREATE PROCEDURE ステートメントを使用する必要があります。具体的な構文は次のとおりです:
CREATE [OR REPLACE] PROCEDURE procedure_name [(parameter_name [IN | OUT | IN OUT] type [, ...])] IS [local_variable_declarations;] BEGIN executable_statements [EXCEPTION exception_handler [exception_handler, ...]] END [procedure_name];
このうち、procedure_name
はストアドプロシージャの名前、parameter_name
は入力、出力、または入出力パラメータの名前、type
はパラメータのデータ型 local_variable_declarations
はローカルです。 変数の宣言ステートメント executable_statements
はストアド プロシージャの主要部分であり、Exception_handler
は例外ハンドラです。 。ストアド プロシージャ内では、SQL ステートメントを使用してデータベース操作を実行できます。
次は、employee
テーブルに新しいレコードを挿入する簡単なストアド プロシージャの例です。入力パラメータ、つまり
、name
、salary
。ストアド プロシージャの本体内で、INSERT INTO ステートメントを使用して、入力値を employee
テーブルに挿入します。最後に、COMMIT ステートメントを使用して変更をコミットします。挿入操作が失敗した場合は、ROLLBACK ステートメントを使用してトランザクションの開始時の状態にロールバックし、RAISE ステートメントを使用して例外を再スローします。 ストアド プロシージャの呼び出し
CREATE OR REPLACE PROCEDURE add_employee (employee_id IN NUMBER, name IN VARCHAR2, salary IN NUMBER) IS BEGIN INSERT INTO employee (employee_id, name, salary) VALUES (employee_id, name, salary); COMMIT; EXCEPTION WHEN OTHERS THEN ROLLBACK; RAISE; END add_employee;
ストアド プロシージャを呼び出すときは、入力パラメータを渡すことができます。次に例を示します:
CALL procedure_name;
これは、
add_employee ストアド プロシージャを呼び出し、値 123、'John'、および 5000 を入力パラメータ ## に渡します。 #employee_id、
name、および
salary。実行結果は、
employee テーブルに新しいレコードが挿入されます。
SQL ステートメントの実行
CALL add_employee(123, 'John', 5000);
column1、column2、...
は取得する列名、table_name は取得する列名です。取得するテーブル名。
[WHERE条件]はオプションの検索条件です。たとえば、次の SELECT ステートメントは、
employee テーブル内のすべてのレコードを取得するために使用されます。
SELECT column1, column2, ... FROM table_name [WHERE condition];
INSERT INTO ステートメント
INSERT INTO ステートメントは、新しいレコードを挿入するために使用されます。テーブルに。 INSERT INTO ステートメントの構文は次のとおりです。 SELECT * FROM employee;
table_name
は、レコードを挿入するテーブルの名前です (column1、column2、...##)。 # は挿入するデータです 列 value1、value2、...
は挿入する値です。たとえば、次の INSERT INTO ステートメントは、新しいレコードを employee
テーブルに挿入します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:sql;toolbar:false;'>INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);</pre><div class="contentsignin">ログイン後にコピー</div></div>
UPDATE ステートメント UPDATE ステートメントは、テーブル内のレコードを更新するために使用されます。 UPDATE ステートメントの構文は次のとおりです。
INSERT INTO employee (employee_id, name, salary) VALUES (123, 'John', 5000);
は更新するテーブルの名前です。
column1 = value1、column2 = value2、.. . は更新するテーブルの名前、列と対応する値、WHERE 条件
はオプションの更新条件です。たとえば、次の UPDATE ステートメントは、employee
テーブルのレコード name
の salary
値を 6000 に更新します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:sql;toolbar:false;'>UPDATE table_name
SET column1 = value1, column2 = value2, ...
[WHERE condition];</pre><div class="contentsignin">ログイン後にコピー</div></div>
DELETEステートメントDELETE ステートメントは、テーブルからレコードを削除するために使用されます。 DELETE ステートメントの構文は次のとおりです。
UPDATE employee SET salary = 6000 WHERE name = 'John';
はレコードを削除するテーブルの名前、
WHERE 条件 はオプションの削除条件です。たとえば、次の DELETE ステートメントは、employee
テーブル内の salary
値が 5000 未満のすべてのレコードを削除するために使用されます。 #Oracle データベースでは、ストアド プロシージャは、特定の入力条件に基づいて事前定義された SQL ステートメントとプログラム ロジックを実行するための非常に便利なツールです。ストアド プロシージャの作成は複雑で困難な作業ですが、仕様に従って作成されている限り、ストアド プロシージャはデータベースの開発と管理のタスクを大幅に簡素化できます。 SQL ステートメントの実行はストアド プロシージャの中核部分であり、さまざまな SQL ステートメントに習熟し、それらをストアド プロシージャに埋め込む方法を理解する必要があります。
以上がOracleストアドプロシージャ実行SQLの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。