Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Pilih Kumpulkan Massal ke Contoh Oracle

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;

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah variabel PL/SQL di kursor secara efektif sama dengan parameter bind?

  2. Apakah kebuntuan mungkin terjadi saat memperbarui dan menghapus baris yang berbeda dalam sebuah tabel?

  3. Cara Mendeklarasikan Pengecualian Buat Pengguna Menggunakan Variabel Pengecualian Di Database Oracle

  4. ORA-00900:pernyataan SQL tidak valid- saat menjalankan prosedur di Oracle 10g

  5. Hapus semua catatan kecuali yang terbaru?