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

tìm nạp từ hàm trả về một con trỏ tham chiếu để ghi lại

Tôi nghi ngờ rằng bạn nghĩ rằng con trỏ của bạn nên tìm nạp các hàng từ REFCURSOR. Nó không thể. REFCURSOR tự nó là một con trỏ, bạn không sử dụng con trỏ khác để chọn từ nó.

Những gì con trỏ hiện tại của bạn đang làm là tìm nạp một hàng, với một cột duy nhất, chứa kết quả của lệnh gọi hàm. Đó là record_cursor không phải là record_name , vì vậy bạn nhận được một loại không khớp.

Tôi nghi ngờ những gì bạn thực sự muốn làm là một cái gì đó như thế này:

declare
  symbol_cursor  package_name.record_cursor;
  symbol_record  package_name.record_name;
begin
  symbol_cursor := package_name.function_name('argument');
  loop
    fetch symbol_cursor into symbol_record;
    exit when symbol_cursor%notfound;

    -- Do something with each record here, e.g.:
    dbms_output.put_line( symbol_record.field_a );

  end loop;

  CLOSE symbol_cursor;

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. Cách tạo người dùng trong Oracle Multitenant 12c không có tiền tố C ##

  2. Tham gia bên ngoài giúp đỡ trong oracle

  3. Thực thi DDL động trong thủ tục PL / SQL thông qua quyền vai trò xác định

  4. 1000000 đến 1M và 1000 đến 1K trong truy vấn oracle

  5. Thiết kế lược đồ đơn giản để phân biệt dự báo nhu cầu