Pangkalan data Oracle ialah sistem pengurusan pangkalan data hubungan yang berkuasa, di mana prosedur tersimpan merupakan salah satu ciri yang paling penting. Dalam Oracle, prosedur tersimpan ialah satu set pernyataan SQL yang ditulis untuk menyelesaikan tugas tertentu dalam pangkalan data, biasanya dikenal pasti dengan nama. Dalam artikel ini, kami akan meneroka cara memanggil prosedur tersimpan dalam Oracle.
Dalam Oracle, prosedur tersimpan biasanya digunakan untuk melaksanakan tugas tertentu, seperti menanyakan data daripada pangkalan data, mengemas kini data, memadamkan data, memasukkan data, dsb. Prosedur tersimpan ini boleh dibuat melalui pernyataan SQL dan disimpan dalam pangkalan data, dan kemudian boleh dipanggil dan dilaksanakan apabila diperlukan.
Terdapat tiga cara untuk memanggil prosedur tersimpan: memanggilnya terus dalam pernyataan SQL, menggunakan blok PL/SQL atau menggunakan API Oracle.
Panggil prosedur tersimpan terus dalam pernyataan SQL adalah salah satu cara paling mudah. Ini boleh dicapai dengan sintaks berikut:
EXECUTE procedure_name(param1, param2, ..., paramN);
Dalam sintaks ini, procedure_name ialah nama prosedur yang disimpan untuk dipanggil, dan param1, param2, ..., paramN ialah senarai parameter yang sepadan.
Sebagai contoh, jika kami mempunyai prosedur tersimpan dipanggil print_employee_name yang menerima ID pekerja sebagai parameter dan mencetak nama pekerja, kami boleh memanggilnya menggunakan:
EXECUTE print_employee_name(1234);
Ini akan memanggil prosedur tersimpan print_employee_name dan lulus 1234 sebagai parameter kepadanya.
PL/SQL ialah bahasa pengaturcaraan prosedural yang merupakan sebahagian daripada Oracle. PL/SQL ialah bahasa yang digunakan untuk menulis prosedur tersimpan, fungsi, pencetus, pengendali dan fungsi lain. Dengan menulis pernyataan panggilan prosedur tersimpan dalam blok PL/SQL, kami boleh menggunakan lebih banyak ciri dan arahan bahasa.
Berikut ialah sintaks untuk memanggil prosedur tersimpan menggunakan blok PL/SQL:
DECLARE -- Declare variable declarations and assign default values variable_name datatype := default_value; BEGIN -- Execute code and actions procedure_name(param1, param2, ..., paramN); END;
Dalam sintaks ini, variable_name mewakili nama pembolehubah yang digunakan dalam pengisytiharan dan datatype ialah jenis data daripada pembolehubah. default_value ialah nilai lalai pembolehubah ini. Parameter seperti procedure_name, param1, dan param2 diperlukan untuk memanggil prosedur yang disimpan.
Sebagai contoh, katakan kami mempunyai prosedur tersimpan yang dipanggil kalkulasi_gaji yang menerima ID pekerja dan parameter gaji dan mengembalikan jumlah gaji pekerja. Kita boleh memanggilnya menggunakan arahan berikut dalam blok PL/SQL:
DECLARE employee_id NUMBER := 1234; salary NUMBER := 5000; total_salary NUMBER; BEGIN calculate_salary(employee_id, salary, total_salary); DBMS_OUTPUT.PUT_LINE('Employee ' || employee_id || ' has a total salary of ' || total_salary); END;
Blok PL/SQL ini melepasi ID pekerja dan nilai gaji kepada prosedur tersimpan calculate_gaji dan kemudian mencetak jumlah nilai gaji yang dikembalikan .
Oracle API ialah satu set API yang boleh digunakan untuk melaksanakan pelbagai operasi data dalam pangkalan data Oracle. Dengan menggunakan Oracle API, kita boleh menulis program untuk memanggil prosedur yang disimpan.
Berikut ialah sintaks umum untuk memanggil prosedur tersimpan menggunakan API Oracle:
DECLARE -- Declare and initialize variables variable_name datatype; -- Declare cursor cursor_name REF CURSOR; BEGIN -- Open cursor OPEN cursor_name FOR SELECT * FROM table_name; -- Execute stored procedure EXECUTE stored_procedure_name(param1, param2, ..., paramN); -- Process results and display output FETCH cursor_name INTO variable_name; DBMS_OUTPUT.PUT_LINE(variable_name); END;
Dalam sintaks ini, cursor_name ialah nama kursor yang diisytiharkan menggunakan REF CURSOR. Nama_prosedur yang disimpan, param1, param2 dan parameter lain ialah prosedur tersimpan dan parameternya untuk dipanggil.
Sebagai contoh, katakan kita mempunyai prosedur tersimpan dipanggil get_employee_name yang menerima ID pekerja sebagai parameter dan mengembalikan nama pekerja. Kami boleh memanggil prosedur tersimpan ini menggunakan Oracle API menggunakan kod berikut:
DECLARE emp_id NUMBER := 1234; emp_name VARCHAR2(50); ref_cursor SYS_REFCURSOR; BEGIN OPEN ref_cursor FOR SELECT * FROM employee_table WHERE id = emp_id; EXECUTE get_employee_name(emp_id, emp_name); FETCH ref_cursor INTO emp_name; DBMS_OUTPUT.PUT_LINE('The employee with ID ' || emp_id || ' has a name of ' || emp_name); END;
Menggunakan Oracle API, kami membuka kursor dan kemudian memanggil prosedur tersimpan get_employee_name. Akhir sekali, kami mendapatkan semula nama pekerja dalam set keputusan dan mencetaknya pada skrin.
Ringkasan
Dalam Oracle, prosedur tersimpan ialah ciri yang sangat berkuasa dan biasa digunakan, yang boleh menyediakan pelbagai pilihan untuk pertanyaan dan operasi pangkalan data kami. Artikel ini meneroka cara memanggil prosedur tersimpan dalam Oracle dan memperkenalkan tiga kaedah, termasuk panggilan terus dalam pernyataan SQL, menggunakan blok PL/SQL dan menggunakan API Oracle. Melalui contoh ini, kami dapat melihat bahawa menggunakan prosedur tersimpan boleh meningkatkan kecekapan operasi pangkalan data kami, dan cara kami boleh menggunakan alat dan kaedah yang sesuai untuk memudahkan kerja pembangunan kami.
Atas ialah kandungan terperinci Bincangkan cara memanggil prosedur tersimpan dalam Oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!