Rumah >pangkalan data >Oracle >Penjelasan terperinci mengenai prosedur tersimpan dan pencetus Oracle

Penjelasan terperinci mengenai prosedur tersimpan dan pencetus Oracle

PHPz
PHPzasal
2023-04-21 10:10:231123semak imbas

Oracle ialah sistem pengurusan pangkalan data hubungan terkenal yang sering digunakan dalam pembangunan dan penyelenggaraan sistem peringkat perusahaan yang besar. Dalam Oracle, prosedur tersimpan dan pencetus adalah dua objek pangkalan data yang sangat penting Artikel ini akan memperkenalkan fungsi mereka dan cara menggunakannya.

1. Prosedur tersimpan

1. Fungsi

Prosedur tersimpan ialah satu set pernyataan SQL yang disusun dan disimpan dalam pangkalan data. Ia boleh dipanggil seperti fungsi, menerima parameter input dan mengembalikan hasil. Prosedur tersimpan boleh menyelesaikan pelbagai operasi yang kompleks, seperti pertanyaan data, pengubahsuaian data, sandaran data, dsb. Mereka sangat memudahkan kerja pengaturcaraan pangkalan data.

2. Cipta

Dalam Oracle, membuat prosedur tersimpan memerlukan penggunaan bahasa PL/SQL, yang boleh dibuat dan diedit menggunakan alatan seperti SQL Developer atau SQL*Plus. Berikut ialah contoh mudah untuk mencipta prosedur tersimpan:

CREATE OR REPLACE PROCEDURE p_add (x IN NUMBER, y IN NUMBER, z OUT NUMBER) IS
BEGIN
  z := x + y;
END p_add;

Dalam contoh di atas, kami mentakrifkan prosedur tersimpan bernama p_add, yang mempunyai dua parameter input x dan y, dan satu parameter output z. Dalam badan prosedur tersimpan, kami menambah parameter input x dan y dan memberikan hasilnya kepada parameter output z.

3. Panggil

Selepas mencipta prosedur tersimpan, kita boleh melaksanakan pernyataan SQL di dalamnya dengan memanggilnya. Terdapat dua cara untuk memanggil prosedur tersimpan dalam PL/SQL:

  • Gunakan pernyataan EXECUTE:
EXECUTE p_add(1,2,:OUT);

Dalam contoh di atas, kami memanggil prosedur tersimpan daripada p_add pas dalam parameter 1 dan 2, dan menggunakan parameter OUT untuk mengeluarkan hasilnya.

  • Menggunakan blok PL/SQL:
DECLARE
  a NUMBER;
BEGIN
  p_add(1,2,a);
  DBMS_OUTPUT.PUT_LINE('The result is: ' || a);
END;

Dalam contoh di atas, kami menggunakan blok PL/SQL untuk memanggil prosedur tersimpan dan mengeluarkan hasilnya.

2. Pencetus

1 Fungsi

Pencetus ialah objek khas yang dikaitkan dengan jadual yang boleh melaksanakan operasi INSERT, UPDATE dan DELETE pada jadual beberapa tindakan. Pencetus boleh digunakan untuk operasi seperti pengesahan data, replikasi data dan sandaran data.

2. Cipta

Dalam Oracle, mencipta pencetus memerlukan penggunaan bahasa PL/SQL Anda juga boleh menggunakan alatan seperti SQL Developer atau SQL*Plus untuk mencipta dan mengedit. Berikut ialah contoh mudah untuk mencipta pencetus:

CREATE OR REPLACE TRIGGER trg_ins_emp
BEFORE INSERT ON emp
FOR EACH ROW
BEGIN
  :NEW.create_time := SYSDATE;
END trg_ins_emp;

Dalam contoh di atas, kami mentakrifkan pencetus bernama trg_ins_emp, yang akan menjadi Masa semasa ditetapkan kepada medan create_time.

Dalam contoh di atas, kata kunci BEFORE menunjukkan bahawa pencetus akan dicetuskan sebelum data dimasukkan, dan FOR EACH ROW menunjukkan bahawa ia akan dicetuskan setiap kali penyataan INSERT dilaksanakan.

3. Selepas memanggil

untuk mencipta pencetus, kami tidak perlu memanggilnya secara manual Kami hanya perlu melakukan operasi INSERT, UPDATE dan DELETE pada jadual yang berkaitan untuk mencetuskan pencetus. . Berikut ialah contoh mudah untuk melakukan operasi INSERT:

INSERT INTO emp (name, salary) VALUES ('Jack', 5000);

Dalam contoh di atas, kami memasukkan rekod ke dalam jadual emp Memandangkan kami mencipta pencetus bernama trg_ins_emp, rekod itu dimasukkan selepas , the medan create_time secara automatik akan diberikan masa semasa.

3. Ringkasan

Prosedur dan pencetus tersimpan ialah dua objek yang sangat penting dalam Oracle. Ia sangat memudahkan kerja pengaturcaraan pangkalan data. Prosedur tersimpan boleh merangkumi operasi SQL yang kompleks, meningkatkan kebolehselenggaraan dan kebolehgunaan semula kod. Pencetus boleh melakukan beberapa operasi secara automatik semasa operasi jadual untuk mengelakkan kerja berulang. Saya harap artikel ini dapat membantu pembaca memahami dengan lebih lanjut prosedur tersimpan dan pencetus pangkalan data Oracle.

Atas ialah kandungan terperinci Penjelasan terperinci mengenai prosedur tersimpan dan pencetus Oracle. 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