Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Chọn Thu thập hàng loạt vào Ví dụ Oracle

Trong bài đăng trên blog trước, tôi đã đưa ra một ví dụ để sử dụng Oracle Bulk Collect using Cursor Rowtype Type Object. Đầu tiên tạo con trỏ, sau đó nhập đối tượng của loại con trỏ và sau đó mở con trỏ, tìm nạp vào bộ sưu tập hàng loạt và cuối cùng xử lý chúng bằng Forall. Nhưng đôi khi bạn có thể được yêu cầu chuẩn bị một số dữ liệu chỉ một lần với khối PLSQL ẩn danh tạm thời và bạn không muốn viết quá nhiều mã để thực hiện tác vụ đó. Đối với loại tình huống này, bạn có thể sử dụng Chọn Thu thập hàng loạt vào một tùy chọn để thực hiện bất kỳ tác vụ nào một cách nhanh chóng mà không tốn quá nhiều thời gian để viết mã.

Dưới đây là ví dụ về khối PLSQL sẽ lấy các bản ghi từ bảng EMP và cập nhật bảng THƯỞNG và cũng in trên màn hình.

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. Hàm NEW_TIME () trong Oracle

  2. Kích hoạt để thực thi mối quan hệ M-M

  3. ORA-16789:nhật ký làm lại ở chế độ chờ được định cấu hình không chính xác

  4. Oracle 12:Tham gia vào danh sách được phân tách bằng dấu phẩy?

  5. cx_Oracle và Xử lý ngoại lệ - Các phương pháp hay?