Dengan peningkatan keperluan perusahaan dan kerumitan sistem, prosedur penyimpanan pangkalan data semakin mendapat perhatian. Sebagai pangkalan data hubungan berskala besar, prosedur tersimpan Oracle memainkan peranan yang semakin penting apabila memproses sejumlah besar data. Jadi, bagaimana untuk menulis prosedur tersimpan dalam Oracle?
1. Apakah prosedur tersimpan?
Prosedur tersimpan ialah satu set pernyataan SQL yang disimpan dan dilaksanakan dalam pangkalan data Beberapa tugas tertentu boleh diselesaikan dengan melaksanakan prosedur tersimpan. Ini mempunyai kelebihan berikut:
2. Format sintaks prosedur tersimpan
Dalam Oracle, menulis prosedur tersimpan perlu mengikut format sintaks tertentu. Sintaks asas adalah seperti berikut:
BUAT ATAU GANTIKAN PROSEDUR nama prosedur yang disimpan
(parameter 1, parameter 2,..., parameter n)
IS
变量1 数据类型; 变量2 数据类型; ……
BEGIN
存储过程体; EXCEPTION 异常处理语句;
TAMAT nama prosedur tersimpan;
Senarai parameter dan bahagian pengisytiharan berubah boleh ditinggalkan, tetapi badan prosedur tersimpan dan bahagian pernyataan pengendalian pengecualian diperlukan.
3. Contoh prosedur tersimpan
Seterusnya, mari kita lihat prosedur tersimpan yang mudah, yang digunakan untuk menanyakan maklumat pekerja yang ditentukan berdasarkan parameter masuk.
BUAT ATAU GANTIKAN PROSEDUR find_employee
(
p_employee_id DALAM NOMBOR,
p_emp_name DALAM VARCHAR2,
p_emp_gaji KELUAR NOMBOR,
p_id OUT NUMBER) IS
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);
Dalam prosedur tersimpan ini, kami mentakrifkan 4 parameter: p_employee_id dan p_emp_name digunakan untuk menanyakan maklumat pekerja, p_emp_gaji dan p_emp_dept_id digunakan untuk kembali Gaji pekerja dan ID jabatan. Jika pengecualian berlaku semasa pertanyaan, kami menggunakan DBMS_OUTPUT untuk mengeluarkan maklumat pengecualian.
4. Memanggil prosedur tersimpan
Kami boleh memanggil prosedur tersimpan dalam dua cara berikut:
Panggilan tanpa nama prosedur tersimpanDECLARE
emp_gaji NUMBER; emp_dept_id NUMBER;
BEGIN
find_employee(100,'Tom ' ,emp_salary,emp_dept_id);
DBMS_OUTPUT.PUT_LINE('gaji = ' || emp_gaji || ', 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_gaji = stmt.getInt(3);
int emp_dept_id = stmt.getInt(4);
System.out.println("gaji = " + emp_gaji + ", dept_id = " + emp_dept_id);
Melalui kod di atas, kami boleh memanggil prosedur tersimpan dengan mudah, mendapatkan hasil pertanyaan dan mengeluarkan maklumat hasil.
Ringkasan: Prosedur tersimpan merupakan bahagian yang sangat penting dalam pangkalan data Oracle Ia boleh meningkatkan kecekapan pemprosesan data dan memastikan ketekalan dan keselamatan data, sekali gus memberikan kemudahan besar kepada pemprosesan data perusahaan. Melalui artikel ini, kita dapat memahami dengan jelas sintaks asas prosedur tersimpan Oracle, dan juga menguasai contoh dan kaedah memanggil prosedur tersimpan.
Atas ialah kandungan terperinci Bagaimana untuk menulis prosedur tersimpan dalam Oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!