Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk menulis prosedur tersimpan dalam Oracle

Bagaimana untuk menulis prosedur tersimpan dalam Oracle

PHPz
PHPzasal
2023-04-18 09:07:433323semak imbas

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:

  1. Meningkatkan kecekapan pelaksanaan pangkalan data.
  2. Memudahkan penulisan pernyataan SQL dan mengurangkan kesukaran pembangunan.
  3. Keselamatan pangkalan data telah dipertingkatkan.
  4. boleh memastikan konsistensi data dengan berkesan.

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

END find_employee;
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 tersimpan
  1. Dalam SQL Developer, pilih "SQL Worksheet" dan masukkan kod berikut:

DECLARE

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;

Panggil melalui permohonan Prosedur Tersimpan
  1. Dalam program Java, kita boleh menggunakan JDBC untuk menyambung ke pangkalan data Oracle dan kemudian memanggil prosedur tersimpan. Kod sampel adalah seperti berikut:

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn