Prosedur tersimpan Oracle ialah bahasa pertanyaan yang berulang kali menjalankan set pernyataan SQL dalam satu blok kod. Kelebihan prosedur tersimpan ialah anda boleh menggunakan semula kod SQL bertulis dan diuji, memudahkan proses penulisan pernyataan SQL dan meningkatkan kecekapan pelaksanaan kod. Tetapi kadang-kadang kita perlu mendapatkan nilai atau hasil tertentu daripada prosedur yang disimpan. Ini memerlukan penggunaan nilai pulangan prosedur tersimpan.
Nilai pulangan prosedur tersimpan boleh menjadi nilai angka, rentetan, tarikh atau nilai Boolean. Nilai pulangan daripada prosedur tersimpan membantu menjadikan kod anda lebih mudah untuk digunakan, boleh dibaca dan boleh digunakan semula.
Nilai pulangan prosedur tersimpan Oracle tidak mempunyai jenis nilai pulangan yang jelas seperti fungsi. Oleh itu, dalam prosedur tersimpan, nilai perlu dihantar kepada program yang memanggilnya melalui parameter OUT atau IN OUT.
Dalam Oracle, nilai pulangan prosedur tersimpan boleh dikembalikan melalui parameter OUT atau OUT. Parameter OUT atau IN OUT membenarkan prosedur tersimpan untuk mengembalikan nilai hasil atau menghantar nilai parameter input kepada prosedur tersimpan, dan membenarkan prosedur tersimpan dan atur cara panggilan berinteraksi berkenaan dengan nilai ini.
Berikut ialah prosedur tersimpan mudah yang mengeluarkan hasil darab dua nilai:
CREATE OR REPLACE PROCEDURE SP_MULTIPLY (input1 IN NUMBER, input2 IN NUMBER, result OUT NUMBER) AS BEGIN result := input1 * input2; END;
Dalam prosedur tersimpan ini, kami menerima dua parameter input input1 dan input2, dan menambahnya Produk disimpan dalam pembolehubah hasil, yang dikembalikan sebagai parameter OUT.
Prosedur tersimpan dipanggil seperti berikut:
DECLARE output NUMBER; BEGIN SP_MULTIPLY(5, 10, output); DBMS_OUTPUT.PUT_LINE('The product is ' || output); END;
Apabila memanggil prosedur tersimpan, kita perlu mengisytiharkan keluaran pembolehubah, hantarkannya sebagai parameter OUT kepada prosedur tersimpan SP_MULTIPLY dan simpan hasilnya . Selepas prosedur tersimpan kembali, kami boleh memanggil DBMS_OUTPUT.PUT_LINE untuk mengeluarkan keputusan.
Selain parameter OUT, prosedur tersimpan juga boleh menggunakan parameter IN OUT untuk menukar data antara prosedur tersimpan dan program panggilan. Sebagai contoh, dalam prosedur tersimpan di bawah, kami akan menerima nilai angka sebagai input, menambahkannya pada nilai angka sedia ada dan mengembalikan hasilnya dengan menyimpannya dalam parameter OUT.
CREATE OR REPLACE PROCEDURE SP_ADD (input IN NUMBER, result IN OUT NUMBER) AS BEGIN result := result + input; END;
Cara untuk memanggil prosedur tersimpan ini adalah seperti berikut:
DECLARE output NUMBER := 10; BEGIN SP_ADD(5, output); DBMS_OUTPUT.PUT_LINE('The result is ' || output); END;
Semasa memanggil prosedur tersimpan, kami menghantar nilai angka sebagai input dan satu lagi output pembolehubah angka sebagai parameter KELUAR. Selepas prosedur tersimpan dilaksanakan, pembolehubah hasil mengandungi hasil akhir.
Untuk meringkaskan, nilai pulangan prosedur tersimpan boleh dikembalikan melalui parameter KELUAR atau KELUAR. Parameter OUT atau IN OUT membenarkan prosedur tersimpan untuk mengembalikan nilai hasil atau menghantar nilai parameter input kepada prosedur tersimpan, dan membenarkan prosedur tersimpan dan atur cara panggilan berinteraksi berkenaan dengan nilai ini. Apabila menulis prosedur tersimpan, kita perlu memberi perhatian khusus kepada jenis dan kaedah penghantaran parameter untuk menggunakan nilai pulangan prosedur tersimpan dengan betul.
Atas ialah kandungan terperinci nilai pulangan prosedur tersimpan oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!