Dalam pangkalan data Oracle, prosedur tersimpan ialah satu set pernyataan SQL yang dipratentukan yang boleh menerima parameter input dan mengembalikan nilai output. Ia digunakan untuk melaksanakan tugas tertentu, biasanya untuk meningkatkan prestasi dan kebolehselenggaraan dalam pangkalan data Oracle, dan untuk mencapai integrasi yang ketat dengan logik perniagaan.
Jadual sementara ialah ruang storan sementara yang digunakan semasa proses pertanyaan. Dalam pangkalan data Oracle, jadual sementara boleh dibuat menggunakan kenyataan CREATE GLOBAL TEMPORARY TABLE. Jadual sedemikian dipadamkan secara automatik pada penghujung sesi dan boleh digunakan sebagai hasil perantaraan untuk berbilang pertanyaan dalam satu sesi.
Sejak beberapa tahun kebelakangan ini, gabungan prosedur tersimpan dan jadual sementara telah menjadi salah satu amalan terbaik untuk melaksanakan pertanyaan yang cekap dan kompleks. Contohnya, dalam gudang data yang besar, operasi ETL (pengekstrakan, transformasi, dan pemuatan) yang kompleks boleh dilaksanakan menggunakan prosedur tersimpan dan jadual sementara, dan berfungsi dengan baik dari segi prestasi dan kebolehselenggaraan.
Dalam artikel ini, kami akan memperkenalkan cara membuat jadual sementara dalam pangkalan data Oracle dan menggunakannya dengan prosedur tersimpan.
Buat jadual sementara
Untuk mencipta jadual sementara dalam pangkalan data Oracle, anda boleh menggunakan kenyataan CREATE GLOBAL TEMPORARY TABLE berikut:
CREATE GLOBAL TEMPORARY TABLE temp_table_name ( column_name1 datatype1, column_name2 datatype2, column_name3 datatype3, ... ) ON COMMIT DELETE ROWS;
Dalam pernyataan ini:
temp_table_name
ialah nama jadual sementara yang ingin anda buat. column_name
ialah nama lajur dalam jadual dan berbilang lajur boleh ditakrifkan. datatype
ialah jenis data setiap lajur. Perhatikan bahawa dalam penyata ini, ON COMMIT DELETE ROWS
merujuk kepada pemadaman semua baris dalam jadual sementara apabila transaksi dilakukan atau sesi ditutup. Ini memastikan bahawa setiap sesi menggunakan jadual kosong dan membebaskan sumber sistem pada akhir sesi.
Menggunakan Jadual Sementara
Setelah anda mencipta jadual sementara, anda boleh menggunakannya dalam prosedur tersimpan. Contohnya, jika anda perlu mentakrifkan set hasil perantaraan dalam prosedur tersimpan, anda boleh menggunakan langkah berikut:
CREATE OR REPLACE PROCEDURE my_procedure IS BEGIN CREATE GLOBAL TEMPORARY TABLE temp_table ( col1 NUMBER, col2 VARCHAR2(20) ) ON COMMIT DELETE ROWS; END my_procedure;
dalam ini Dalam contoh, saya menentukan jadual sementara bernama temp_table
dalam prosedur tersimpan, termasuk dua lajur col1
dan col2
, dan menggunakan pilihan ON COMMIT DELETE ROWS
untuk mentakrifkannya.
CREATE OR REPLACE PROCEDURE my_procedure IS BEGIN CREATE GLOBAL TEMPORARY TABLE temp_table ( col1 NUMBER, col2 VARCHAR2(20) ) ON COMMIT DELETE ROWS; INSERT INTO temp_table (col1, col2) VALUES (1, 'Hello'); INSERT INTO temp_table (col1, col2) VALUES (2, 'World'); COMMIT; END my_procedure;
Dalam contoh ini, saya memasukkan dua baris data ke dalam jadual sementara. Ambil perhatian bahawa pernyataan COMMIT
di sini diperlukan kerana jadual sementara dalam pangkalan data Oracle hanya tersedia apabila transaksi dilakukan.
CREATE OR REPLACE PROCEDURE my_procedure IS cur1 SYS_REFCURSOR; BEGIN CREATE GLOBAL TEMPORARY TABLE temp_table ( col1 NUMBER, col2 VARCHAR2(20) ) ON COMMIT DELETE ROWS; INSERT INTO temp_table (col1, col2) VALUES (1, 'Hello'); INSERT INTO temp_table (col1, col2) VALUES (2, 'World'); COMMIT; OPEN cur1 FOR SELECT * FROM temp_table; -- Use the result set -- ... END my_procedure;
Dalam contoh ini, saya menggunakan jenis data SYS_REFCURSOR
untuk mengisytiharkan penunjuk set hasil. Saya kemudian membuka kursor dalam prosedur tersimpan, menggunakan pernyataan SELECT
untuk mendapatkan semula data daripada jadual sementara dan mengembalikan set hasil kepada atur cara yang dipanggil prosedur tersimpan. Selepas ini, anda boleh menggunakan set hasil seperti kursor lain.
Kesimpulan
Dalam pangkalan data Oracle, prosedur tersimpan dan jadual sementara telah menjadi amalan terbaik untuk melaksanakan pertanyaan kompleks. Menggunakan jadual sementara bersama-sama dengan prosedur tersimpan boleh meningkatkan prestasi pertanyaan dan kebolehselenggaraan, serta mencapai integrasi yang ketat dengan logik perniagaan. Dalam aplikasi praktikal, adalah disyorkan untuk mereka bentuk jadual sementara dan prosedur tersimpan anda dengan teliti dan memastikan ia boleh mencapai keperluan anda.
Atas ialah kandungan terperinci jadual sementara prosedur tersimpan oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!