Rumah > pangkalan data > Oracle > teks badan

Contoh prosedur tersimpan oracle

WBOY
Lepaskan: 2023-05-11 11:13:06
asal
2210 orang telah melayarinya

Prosedur tersimpan ialah atur cara pangkalan data pra-disusun yang mengandungi satu set pernyataan SQL dan pernyataan kawalan yang boleh dipanggil apabila diperlukan. Artikel ini akan memperkenalkan pengetahuan asas dan contoh prosedur tersimpan pangkalan data Oracle.

1. Asas prosedur tersimpan

1.1 Kelebihan prosedur tersimpan

Prosedur tersimpan ialah kaedah yang berkesan untuk meningkatkan prestasi pangkalan data. Mereka meningkatkan kecekapan interaksi aplikasi dengan pangkalan data kerana penyata SQL disusun awal pada bahagian pangkalan data, membolehkan mereka menyelesaikan operasi dengan lebih cepat apabila dipanggil. Ia juga meningkatkan keselamatan data kerana prosedur tersimpan boleh melakukan semakan kebenaran sebelum mencipta dan mengubah suai data dalam pangkalan data.

1.2 Penciptaan prosedur tersimpan

Anda boleh menggunakan alatan pembangunan Oracle SQL untuk mencipta prosedur tersimpan. Oracle SQL Developer dan SQL Plus adalah alat yang biasa digunakan.

Berikut ialah sintaks asas untuk mencipta prosedur tersimpan:

BUAT [ATAU GANTI] PROCEDURE procedure_name
([parameter_name IN/OUT datatype [, parameter_name IN/OUT datatype …] ])
IS
BERMULA
​​penyataan;
EXCEPTION
exception_handler;
END;

Antaranya, parameter adalah pilihan, '[ ATAU REPLACE]' arahan Anda boleh menentukan bahawa aplikasi mesti wujud dan mengekalkan keadaan prosedur yang disimpan.

1.3 Parameter input dan output prosedur tersimpan

Prosedur tersimpan boleh menerima parameter input dan parameter output. Parameter input boleh digunakan untuk melaksanakan operasi bersyarat dalam prosedur tersimpan atau untuk menghantar data kepada prosedur tersimpan. Parameter output digunakan untuk mengembalikan maklumat seperti nilai atau nilai tertentu dalam proses output.

Begini cara beberapa parameter berinteraksi:

DALAM: Parameter input digunakan untuk menghantar nilai kepada prosedur yang disimpan.

KELUAR: Parameter output tidak digunakan untuk data input, tetapi boleh mengembalikan nilai melalui prosedur tersimpan.

INOUT: Parameter input/output membenarkan nilai dihantar sebagai parameter dan ditukar melalui nilai pulangan pelaksanaan prosedur tersimpan.

1.4 Pengendalian pengecualian prosedur tersimpan

Prosedur tersimpan boleh mengendalikan pengecualian seperti fungsi. Apabila ralat berlaku dalam prosedur tersimpan, anda boleh menyediakan pengendalian pengecualian. Ia boleh melaksanakan pengurusan mesej ralat tersuai dan menggunakan gelagat tertentu untuk menyerahkan ralat ini apabila ralat berlaku.

Berikut ialah sintaks asas untuk mencipta pengendalian pengecualian:

ISYTIHKAN
exception_name EXCEPTION;
PRAGMA EXCEPTION_INIT (exception_name, error_code);
MULAI
pernyataan ;
PENGECUALIAN

  WHEN exception_name THEN
     statement(s);
Salin selepas log masuk

TAMAT;

2. Contoh prosedur tersimpan

Berikut ialah beberapa contoh prosedur tersimpan biasa:

2.1 Prosedur tersimpan Pertanyaan ringkas

Berikut ialah contoh prosedur tersimpan ringkas, yang akan mengeluarkan data yang memenuhi syarat dalam jadual:

BUAT ATAU GANTIKAN PROSEDUR get_emp_data
(
ID DALAM NOMBOR,
NAMA KELUAR VARCHAR2,
GAJI KELUAR NOMBOR
)
ADALAH
BERMULA
​​PILIH nama_pekerja,gaji KE DALAM NAMA,GAJI DARI pekerja WHERE employee_id = ID;
TAMAT;

Atas prosedur tersimpan di atas perlu lulus dalam 2 parameter: ID ialah parameter input yang diperlukan, yang mentakrifkan ID pekerja yang mana maklumat akan ditanya manakala nama dan gaji ialah parameter output , yang menerima nilai lajur yang sepadan dalam hasil pertanyaan.

Dapatkan nilai parameter output prosedur tersimpan Anda boleh memanggil prosedur tersimpan seperti fungsi:

DECLARE
emp_name VARCHAR2(20);
emp_gaji NUMBER(. 10,2);
BEGIN
​​​​get_emp_data (100,emp_name,emp_gaji);
DBMS_OUTPUT.PUT_LINE('Nama: ' || emp_name);
DBMS_OUTPUT.PUT_LINE('Gaji: ' ||. emp_gaji);
END;

Dalam kod di atas, ID parameter prosedur tersimpan ditetapkan kepada 100, jadi nama dan gaji pekerja akan dikembalikan.

2.2 Operasi sisipan prosedur tersimpan

Berikut ialah contoh prosedur tersimpan, yang melaksanakan fungsi memasukkan baris data ke dalam senarai pekerja yang ditentukan:

BUAT ATAU GANTIKAN PROSEDUR add_pekerja
(
ID DALAM NOMBOR,
NAMA DALAM VARCHAR2,
UMUR DALAM NOMBOR,
GAJI DALAM NOMBOR
)
SEDANG
BERMULA
> MASUKKAN KE DALAM NILAI pekerja ( ID, NAMA, UMUR, GAJI);
KOMIT;
DBMS_OUTPUT.PUT_LINE('Pekerja ditambah.');
PENGECUALIAN
BILA ORANG LAIN MAKA

rreee

TAMAT;

Atas prosedur tersimpan di atas memerlukan 4 parameter input: ID pekerja, nama pekerja, umur pekerja dan gaji pekerja, yang kemudiannya dimasukkan ke dalam jadual "pekerja". Apabila sisipan berjaya, mesej "tambah pekerja" akan digesa, dan apabila sisipan gagal, mesej "Ralat menambah pekerja" akan digesa.

2.3 Kemas kini operasi prosedur tersimpan

Contoh berikut menyediakan fungsi meningkatkan gaji pekerja dengan ID tertentu dalam jadual pekerja sebanyak 10%:

CIPTA ATAU MENGGANTIKAN PROSEDUR kenaikan_gaji_pekerja
(
ID DALAM NOMBOR
)
IS
KURSOR c_gaji_pekerja IS

DBMS_OUTPUT.PUT_LINE('Error adding employee.');
Salin selepas log masuk

v_gaji_pekerja BILANGAN;<🎜 BILANGAN_gaji_pekerja;<🎜
AMBIL c_gaji_pekerja KE DALAM v _gaji_pekerja;
v_gaji_pekerja := v_gaji_pekerja * 1.1;
KEMASKINI gaji SET pekerja = v_gaji_pekerja DI MANA _id_pekerja = ID ;
UTP. meningkat.' );
PENGECUALIAN
APABILA TIADA_DATA_TERJUMPA MAKA

SELECT salary FROM employees WHERE employee_id = ID;
Salin selepas log masuk

BILA YANG LAIN MAKA
DBMS_OUTPUT.PUT_LINE('Employee not found.');
Salin selepas log masuk
TAMAT;

Contoh prosedur tersimpan di atas memerlukan 1 parameter input: ID pekerja, ia mendapat gaji pekerja berdasarkan ID pekerja, darabkannya dengan 1.1 dan mengemas kininya ke jadual. Apabila dikemas kini dengan betul, mesej "gaji dinaikkan" akan digesa; apabila pekerja tidak ditemui, mesej "pekerja tidak dijumpai" akan digesa apabila ralat lain berlaku, mesej "ralat kenaikan gaji" akan digesa.

Ringkasan

Dalam artikel ini, kami memperkenalkan asas prosedur tersimpan pangkalan data Oracle dan beberapa contoh. Prosedur tersimpan boleh meningkatkan prestasi pangkalan data dan keselamatan data, dan sangat berguna untuk tugasan yang perlu dilakukan dengan kerap. Melalui beberapa contoh, anda boleh lebih memahami cara mencipta dan menggunakan prosedur tersimpan Oracle.

Atas ialah kandungan terperinci Contoh prosedur tersimpan 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!