Rumah >pangkalan data >Oracle >Oracle stored procedure execution sql

Oracle stored procedure execution sql

WBOY
WBOYasal
2023-05-13 12:24:071257semak imbas

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.

Menulis prosedur tersimpan Oracle

Mencipta prosedur tersimpan

Mencipta prosedur tersimpan memerlukan penggunaan pernyataan CREATE PROCEDURE Sintaks khusus adalah seperti berikut:

rreee

di 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.

Contoh

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.

Memanggil prosedur tersimpan

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.

Melaksanakan pernyataan SQL

Dalam prosedur tersimpan, anda boleh menggunakan pernyataan SQL untuk melaksanakan pelbagai operasi. Berikut ialah beberapa contoh pernyataan SQL biasa:

PILIH pernyataan

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 pernyataan Penyataan

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

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];

DELETE pernyataan

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];

Kesimpulan

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!

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