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

Cách lưu trữ kết quả lựa chọn thành biến trong thủ tục Oracle

Bạn có một số lựa chọn. Bạn có thể biến truy vấn đó thành con trỏ:

DECLARE
     CURSOR v_employeeRecords IS
          SELECT * FROM Employee WHERE Salary > 10;
     v_employeeRecord  employee%ROWTYPE;
BEGIN
     FOR v_employeeRecord IN v_employeeRecords LOOP
          /* Do something with v_employeeRecord */
     END LOOP;
END;

Hoặc, bạn có thể tạo TABLE biến:

DECLARE
     v_employeeRecord  employee%ROWTYPE;
     v_employeeRecords IS TABLE OF employee%ROWTYPE;
     i BINARY_INTEGER;
BEGIN
 SELECT * BULK COLLECT INTO v_employeeRecords
      FROM Employee WHERE Salary > 10;

 i := v_employeeRecords.FIRST;
 WHILE v_employeeRecords.EXISTS(i) LOOP
     v_employeeRecord := v_employeeRecords(i);
     /* Do something with v_employeeRecord */
     i := v_employeeRecords.NEXT(i);
 END;
END;

Tôi chưa thử các mẫu này trong Oracle, vì vậy bạn có thể gặp lỗi trình biên dịch ...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sqlplus - sử dụng biến ràng buộc trong mệnh đề IN

  2. MVC4 Entity Framework nhiều đến nhiều tên bảng kết hợp tùy chỉnh và tên lược đồ

  3. Tách chuỗi được phân tách bằng dấu phẩy trong một chương trình được lưu trữ PL / SQL

  4. Cách thực thi PL SQL Block trong Oracle

  5. Truy vấn tốt nhất để đạt được chỉ mục Oracle với liên kết và giá trị null