Rumah > pangkalan data > Oracle > Bincangkan cara memanggil prosedur tersimpan dalam Oracle

Bincangkan cara memanggil prosedur tersimpan dalam Oracle

PHPz
Lepaskan: 2023-04-17 14:50:30
asal
1139 orang telah melayarinya

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.

  1. Panggil prosedur tersimpan terus dalam pernyataan SQL

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);
Salin selepas log masuk

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);
Salin selepas log masuk

Ini akan memanggil prosedur tersimpan print_employee_name dan lulus 1234 sebagai parameter kepadanya.

  1. Panggil prosedur tersimpan menggunakan blok PL/SQL

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;
Salin selepas log masuk

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;
Salin selepas log masuk

Blok PL/SQL ini melepasi ID pekerja dan nilai gaji kepada prosedur tersimpan calculate_gaji dan kemudian mencetak jumlah nilai gaji yang dikembalikan .

  1. Menggunakan Oracle API untuk memanggil prosedur tersimpan

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;
Salin selepas log masuk

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;
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan