Dalam Pangkalan Data Oracle, prosedur tersimpan ialah satu set pernyataan SQL dan logik program yang dipratentukan yang boleh dilaksanakan berdasarkan keadaan input tertentu. Prosedur tersimpan boleh ditulis berdasarkan keperluan perniagaan dan kemudian disimpan dalam pangkalan data. Prosedur tersimpan berguna dalam pelbagai senario perniagaan, seperti pemprosesan data kelompok, pengelogan, proses automatik, dsb. Artikel ini akan memberi tumpuan kepada cara menulis dan melaksanakan pernyataan SQL dalam prosedur tersimpan Oracle.
Mencipta prosedur tersimpan memerlukan penggunaan pernyataan CREATE PROCEDURE Sintaks khusus adalah seperti berikut:
rreeedi mana, procedure_name
ialah nama prosedur tersimpan, parameter_name
ialah nama input, output atau input dan parameter output, type
ialah jenis data parameter, local_variable_declarations
ialah pernyataan pengisytiharan bagi pembolehubah tempatan, executable_statements
ialah bahagian utama prosedur tersimpan, exception_handler
ialah pengendali pengecualian. Di dalam prosedur tersimpan, anda boleh menggunakan pernyataan SQL untuk melaksanakan operasi pangkalan data.
Berikut ialah contoh prosedur tersimpan mudah untuk memasukkan rekod baharu dalam jadual employee
:
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];
Prosedur tersimpan ini mempunyai 3 parameter input, masing-masing employee_id
, name
, salary
. Di dalam badan prosedur tersimpan, gunakan pernyataan INSERT INTO untuk memasukkan nilai input ke dalam jadual employee
. Akhir sekali, gunakan pernyataan COMMIT untuk melakukan perubahan. Jika operasi sisipan gagal, gunakan penyata ROLLBACK untuk melancarkan kembali ke keadaan pada permulaan transaksi dan gunakan penyataan RAISE untuk melemparkan semula pengecualian.
Untuk memanggil prosedur tersimpan, anda boleh menggunakan pernyataan CALL Sintaks khusus adalah seperti berikut:
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;
Apabila memanggil prosedur tersimpan, anda. boleh lulus parameter input. Berikut ialah Contoh:
CALL procedure_name;
Ini akan memanggil prosedur tersimpan add_employee
, menghantar nilai 123, 'John' dan 5000 kepada parameter input employee_id
, name
dan salary
. Hasilnya ialah rekod baharu yang dimasukkan ke dalam jadual employee
.
Dalam prosedur tersimpan, anda boleh menggunakan pernyataan SQL untuk melaksanakan pelbagai operasi. Berikut ialah beberapa contoh pernyataan SQL biasa:
PILIH pernyataan digunakan untuk mendapatkan semula rekod daripada jadual. Berikut ialah sintaks pernyataan SELECT:
CALL add_employee(123, 'John', 5000);
di mana, column1, column2, ...
ialah nama lajur yang akan diambil, table_name
ialah nama jadual yang akan diambil dan [WHERE condition]
ialah syarat carian pilihan . Sebagai contoh, penyataan SELECT berikut digunakan untuk mendapatkan semula semua rekod dalam jadual employee
:
SELECT column1, column2, ... FROM table_name [WHERE condition];
INSERT INTO digunakan untuk memasukkan rekod baharu ke dalam jadual. Berikut ialah sintaks pernyataan INSERT INTO:
SELECT * FROM employee;
di mana table_name
ialah nama jadual di mana rekod akan dimasukkan, column1, column2, ...
ialah lajur di mana data akan dimasukkan, dan value1, value2, ...
ialah nilai yang hendak disisipkan. Sebagai contoh, pernyataan INSERT INTO berikut memasukkan rekod baharu ke dalam jadual employee
.
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
KEMASKINI kenyataan digunakan untuk mengemas kini rekod dalam jadual. Berikut ialah sintaks pernyataan KEMASKINI:
INSERT INTO employee (employee_id, name, salary) VALUES (123, 'John', 5000);
di mana, table_name
ialah nama jadual yang akan dikemas kini, column1 = value1, column2 = value2, ...
ialah lajur yang akan dikemas kini dan nilai yang sepadan, dan WHERE condition
ialah syarat kemas kini pilihan. Sebagai contoh, pernyataan KEMASKINI berikut digunakan untuk mengemas kini nilai employee
rekod dalam jadual name
dengan salary
ialah 'John' kepada 6000:
UPDATE table_name SET column1 = value1, column2 = value2, ... [WHERE condition];
Penyataan DELETE digunakan Padam rekod daripada jadual. Berikut ialah sintaks pernyataan DELETE:
UPDATE employee SET salary = 6000 WHERE name = 'John';
di mana table_name
ialah nama jadual dari mana rekod akan dipadamkan dan WHERE condition
ialah syarat pemadaman pilihan. Sebagai contoh, pernyataan DELETE berikut digunakan untuk memadam semua rekod dalam jadual employee
dengan nilai salary
kurang daripada 5000:
DELETE FROM table_name [WHERE condition];
Dalam pangkalan data Oracle, prosedur tersimpan adalah alat yang sangat berguna, Digunakan untuk melaksanakan pernyataan SQL dan logik program yang telah ditetapkan berdasarkan keadaan input tertentu. Menulis prosedur tersimpan adalah tugas yang kompleks dan mencabar, tetapi selagi ia ditulis mengikut spesifikasi, prosedur tersimpan boleh memudahkan tugas pembangunan dan pengurusan pangkalan data. Melaksanakan pernyataan SQL ialah bahagian teras prosedur tersimpan. Ia memerlukan kemahiran dalam pelbagai pernyataan SQL dan memahami cara membenamkannya ke dalam prosedur tersimpan.
Atas ialah kandungan terperinci Oracle stored procedure execution sql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!