Rumah  >  Artikel  >  pangkalan data  >  prosedur tersimpan oracle mengembalikan set hasil

prosedur tersimpan oracle mengembalikan set hasil

WBOY
WBOYasal
2023-05-11 11:33:363069semak imbas

Oracle ialah salah satu sistem pengurusan pangkalan data hubungan yang paling banyak digunakan di dunia Ia mempunyai kelebihan kestabilan, kebolehskalaan dan keselamatan yang baik Selain itu, Oracle juga menyediakan fungsi prosedur tersimpan, yang merupakan sejenis fungsi dalam pangkalan data. Koleksi pernyataan SQL yang dilaksanakan yang sintaksnya serupa dengan PL/SQL. Prosedur tersimpan digunakan terutamanya untuk memudahkan kod berulang, meningkatkan kebolehgunaan semula kod, mempercepat pemprosesan data, dsb. Artikel ini akan memperkenalkan cara menulis prosedur tersimpan dalam Oracle dan mengembalikan set hasil.

1. Asas prosedur tersimpan

Dalam Oracle, prosedur tersimpan ialah koleksi pernyataan SQL yang boleh melakukan pertanyaan, sisipan, kemas kini, pemadaman dan operasi pangkalan data lain. Dalam Oracle, prosedur tersimpan boleh ditulis menggunakan bahasa PL/SQL. Prosedur tersimpan ialah objek pangkalan data yang dicipta menggunakan kenyataan CREATE PROCEDURE Selain itu, anda juga boleh menggunakan pernyataan CREATE FUNCTION untuk mencipta prosedur tersimpan jenis fungsi. Prosedur tersimpan jenis fungsi mengembalikan nilai, manakala prosedur tersimpan tidak mengembalikan nilai, tetapi parameter OUT boleh digunakan di dalamnya untuk mengembalikan hasilnya. Prosedur tersimpan membolehkan pengguna menyesuaikan parameter, mengurangkan kerumitan akses dan pemprosesan data.

Kelebihan prosedur tersimpan:

  1. Mengurangkan kod berulang
  2. Mengurangkan beban pada pangkalan data dan rangkaian
  3. Meningkatkan kebolehbacaan dan kebolehbacaan Kebolehselenggaraan kod
  4. Tingkatkan kelajuan pemprosesan data

Kelemahan prosedur tersimpan:

  1. Tingkatkan penggunaan memori
  2. Tingkatkan masa pembangunan dan ujian
  3. Sintaks prosedur tersimpan adalah seperti berikut:
BUAT ATAU GANTIKAN PROSEDUR nama_prosedur (IN_parameter IN data_type, OUT_parameter OUT data_type)

IS

ISYTIHKAN

pembolehubah

:_jenis data = nilai ;

MULAKAN

​​--Pernyataan pelaksanaan

PENGECUALIAN
--Pengendalian pengecualian
TAMAT;

Perihalan parameter:

1 ATAU GANTI PROSEDUR: Cipta atau gantikan prosedur tersimpan

2. procedure_name: Nama prosedur tersimpan, yang mestilah unik.

3. IN_parameter: Nama parameter input prosedur yang disimpan, yang boleh menjadi satu parameter atau berbilang parameter.

4. data_type: jenis data IN_parameter

5. Boleh mengembalikan rekod atau jenis kursor.

6. DECLARE: digunakan untuk mengisytiharkan pembolehubah, kursor, jenis rekod, dsb.

7. nama_pembolehubah: nama pembolehubah

8: penetapan pembolehubah

9: mengandungi kod pelaksanaan utama prosedur tersimpan untuk melaksanakan fungsi khusus prosedur tersimpan.

10 PENGECUALIAN: Digunakan untuk mengendalikan pengecualian semasa operasi.

11 TAMAT: Prosedur tersimpan tamat.

3. Prosedur tersimpan mengembalikan set hasil

Dalam Oracle, prosedur tersimpan boleh mengembalikan hasil melalui parameter OUT. Dalam prosedur tersimpan, kita perlu menggunakan pembolehubah kursor untuk membaca set hasil pertanyaan, dan kemudian menghantar hasilnya kepada parameter OUT. Langkah-langkah khusus adalah seperti berikut:

1. Tentukan prosedur tersimpan dan parameter KELUAR

BUAT ATAU GANTI PROSEDUR nama_prosedur(p_out_parameter OUT SYS_REFCUSOR)

IS

MULAKAN BUKA p_out_parameter UNTUK PILIH lajur1, lajur2 DARI table_name;

END;

Penjelasan:

Prosedur tersimpan di atas mentakrifkan parameter OUT p_out_parameter, jenis data bagi parameter ini ialah SYS_REFCUSOR .

2. Panggil prosedur tersimpan

ISYTIHKAN

type_name SYS_REFCUSOR;

BEGIN

​​​​procedure_name(type_name);

END;

Penerangan :


Gunakan kata kunci DECLARE untuk mentakrifkan jenis_nama pembolehubah kursor, yang jenis datanya ialah SYS_REFCUSOR.

Panggil nama_prosedur yang disimpan dan hantar nama_jenis parameter kepada parameter OUT p_out_parameter. Selepas pelaksanaan prosedur tersimpan selesai, hasil pertanyaan yang dikembalikan akan disimpan dalam nama_jenis pembolehubah kursor.

3. Gunakan pembolehubah kursor untuk membaca hasil pertanyaan

ISYTIHKAN

type_name SYS_REFCUSOR;

procedure_name(type_name);

LOOP

FETCH type_name INTO column1_value, column2_value; 
EXIT WHEN type_name%NOTFOUND; 
--使用查询结果进行其他操作 

END LOOP;

TUTUP type_name;


Arahan:

Gunakan di atas; kod Nama_jenis pembolehubah kursor membaca baris demi baris hasil pertanyaan yang ditetapkan dan menyimpan nilai lajur1 dan lajur2 setiap baris dalam pembolehubah column1_value dan column2_value.

Melalui pernyataan LOOP dan FETCH, pembolehubah kursor boleh membaca hasil pertanyaan yang ditetapkan baris demi baris. Apabila baris terakhir disoal, keadaan type_name%NOTFOUND akan mengembalikan TRUE dan gelung akan keluar. Akhir sekali, gunakan pernyataan CLOSE untuk menutup kursor.

4

Prosedur tersimpan ialah alat pemprosesan data yang berkesan dalam Oracle, yang boleh mengoptimumkan operasi data dengan mengurangkan pertindihan kod, meningkatkan kebolehgunaan semula kod dan mempercepatkan pemprosesan data. Apabila menulis prosedur tersimpan, anda perlu biasa dengan sintaks asas dan peraturan parameternya, dan memahami cara untuk mengembalikan set hasil pertanyaan. Penggunaan prosedur tersimpan boleh meningkatkan prestasi dan keselamatan pangkalan data, dan merupakan salah satu kemahiran yang diperlukan untuk pembangun pangkalan data Oracle.

Atas ialah kandungan terperinci prosedur tersimpan oracle mengembalikan set hasil. 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
Artikel sebelumnya:Soal parameter oracleArtikel seterusnya:Soal parameter oracle