企業のニーズとシステムの複雑さの増大に伴い、データベース ストアド プロシージャへの注目がますます高まっています。大規模なリレーショナル データベースとして、Oracle のストアド プロシージャは、大量のデータを処理する際にますます重要な役割を果たします。では、Oracle でストアド プロシージャを作成するにはどうすればよいでしょうか?
1. ストアド プロシージャとは何ですか?
ストアド プロシージャは、データベースに保存されて実行される一連の SQL ステートメントです。ストアド プロシージャを実行することで、一部の特定のタスクを完了できます。これには次のような利点があります。
2. ストアド プロシージャの構文形式
Oracle では、ストアド プロシージャを作成する場合、特定の構文形式に従う必要があります。基本的な構文は次のとおりです。
CREATE OR REPLACE PROCEDURE ストアド プロシージャ名
(パラメータ 1、パラメータ 2、...、パラメータ n)
IS
变量1 数据类型; 变量2 数据类型; ……
BEGIN
存储过程体; EXCEPTION 异常处理语句;
END ストアドプロシージャ名;
パラメータリストと変数宣言部分は省略可能ですが、ストアドプロシージャ本体と例外処理文部分は必須です。
3. ストアド プロシージャの例
次に、受信パラメータに基づいて指定された従業員情報をクエリするために使用される単純なストアド プロシージャを見てみましょう。
プロシージャ Find_EMPLOYEE の作成または置換
(## P_employee_id in Number,
P_emp_name in Varchar2,
P_EMALARY OUMBER,
P_emp_dept_id out number
)
は
BEGIN
SELECT salary, dept_id INTO p_emp_salary, p_emp_dept_id FROM employee WHERE employee_id = p_employee_id AND employee_name = p_emp_name; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('查询出错' || SQLERRM);
DECLARE
emp_salary NUMBER; emp_dept_id NUMBER;
BEGIN
find_employee(100,'Tom' , emp_salary,emp_dept_id);
DBMS_OUTPUT.PUT_LINE('salary = ' || emp_salary || ', dept_id = ' || emp_dept_id);
END;
CallableStatement stmt = conn.prepareCall("{call find_employee(?,?,?,?)}");
stmt.setInt(1, 100);stmt .setString(2, "Tom");
stmt.registerOutParameter(3, java.sql.Types.NUMERIC);
stmt.registerOutParameter(4, java.sql.Types.NUMERIC);
stmt .execute();
int emp_salary = stmt.getInt(3);
int emp_dept_id = stmt.getInt(4);
System.out.println("salary = " emp_salary ", dept_id = " emp_dept_id);
上記のコードを通じて、ストアド プロシージャを簡単に呼び出し、クエリ結果を取得し、結果情報を出力できます。
概要: ストアド プロシージャは Oracle データベースの非常に重要な部分であり、データ処理効率を向上させ、データの一貫性とセキュリティを確保することで、企業のデータ処理に大きな利便性をもたらします。この記事を通じて、Oracle ストアド プロシージャの基本構文を明確に理解し、ストアド プロシージャの例と呼び出しメソッドをマスターすることもできます。
以上がOracle でストアド プロシージャを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。