Pada postingan blog sebelumnya, saya sudah memberikan contoh penggunaan Oracle Bulk Collect Using Cursor Rowtype Type Object. Yang pertama membuat kursor lalu ketik objek tipe kursor dan kemudian buka kursor, ambil ke dalam kumpulan massal dan akhirnya proses mereka menggunakan Forall. Tetapi terkadang Anda mungkin diminta untuk menyiapkan beberapa data hanya untuk satu kali dengan blok PLSQL anonim sementara, dan Anda tidak ingin menulis terlalu banyak kode untuk melakukan tugas itu. Untuk skenario semacam ini, Anda dapat menggunakan Pilih Kumpulkan Massal ke opsi untuk melakukan tugas apa pun dengan cepat tanpa membuang banyak waktu untuk menulis kode.
Di bawah ini adalah contoh blok PLSQL yang akan mengambil record dari tabel EMP dan memperbarui tabel BONUS dan juga mencetak di layar.
SET SEVEROUTPUT ON; DECLARE TYPE t_emp IS TABLE OF emp%ROWTYPE; e_rec t_emp; BEGIN SELECT * BULK COLLECT INTO e_rec FROM emp; FORALL i IN e_rec.FIRST .. e_rec.LAST update bonus set amount = e_rec(i).sal * 15 / 100 where empno = e_rec(i).empno; Commit; FOR i IN e_rec.FIRST .. e_rec.LAST LOOP DBMS_OUTPUT. put_line ( 'Bonus Updated For Employee: ' || e_rec (i).ename || ' ' || 'Bonus: ' || e_rec(i).sal * 15 / 100); END LOOP; END;
-
Apakah variabel PL/SQL di kursor secara efektif sama dengan parameter bind?
-
Apakah kebuntuan mungkin terjadi saat memperbarui dan menghapus baris yang berbeda dalam sebuah tabel?
-
Cara Mendeklarasikan Pengecualian Buat Pengguna Menggunakan Variabel Pengecualian Di Database Oracle
-
ORA-00900:pernyataan SQL tidak valid- saat menjalankan prosedur di Oracle 10g
-
Hapus semua catatan kecuali yang terbaru?