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

Ví dụ thu thập hàng loạt Oracle bằng cách sử dụng đối tượng loại Rowtype con trỏ

Trong bài đăng này, tôi đưa ra một ví dụ để thực hiện chèn vào bằng lệnh Oracle Bulk Collect và FORALL. Đã tạo một hàm PL SQL sẽ lấy dữ liệu từ bảng EMP bằng con trỏ, sau đó tạo biến mảng kiểu của loại hàng con trỏ đó rồi thu thập hàng loạt và chèn vào bảng BONUS bằng FORALL.

Dưới đây là ví dụ:

CREATE OR REPLACE FUNCTION f_currowtype
RETURN BOOLEAN
IS
CURSOR c_emp
IS
SELECT empno,
ename,
job,
sal
FROM emp;

TYPE t_emp IS TABLE OF c_emp%ROWTYPE;

e_rec   t_emp;
BEGIN
OPEN c_emp;

FETCH c_emp
BULK COLLECT INTO e_rec;

CLOSE c_emp;

FORALL i IN e_rec.FIRST .. e_rec.LAST
insert into bonus (empno, amount)
values (e_rec(i).empno, e_rec(i).sal * 10 / 100);

DBMS_OUTPUT.put_line ('Rows inserted: ' || SQL%ROWCOUNT);

COMMIT;
RETURN TRUE;
EXCEPTION
WHEN OTHERS
THEN
ROLLBACK;
RETURN FALSE;
END;

Bạn có thể thực hiện nó như sau:

SET SERVEROUTPUT ON;

BEGIN
IF f_currowtype
THEN
DBMS_OUTPUT.put_line ('Success');
ELSE
DBMS_OUTPUT.put_line ('Failed');
END IF;
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. làm thế nào để cấp đặc quyền người dùng trên lược đồ cụ thể?

  2. Cài đặt RAC cho Cơ sở dữ liệu với Datafiles

  3. Tạo trình kích hoạt cập nhật một cột trên một bảng khi một cột trong bảng khác được cập nhật

  4. Hàm FROM_TZ () trong Oracle

  5. CHÈN và CẬP NHẬT bản ghi bằng cách sử dụng con trỏ trong oracle