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

các thủ tục được lưu trữ oracle (w / con trỏ) hoạt động như thế nào?

Thủ tục được lưu trữ đang trả về thứ gì đó chỉ là bạn không làm gì với kết quả.

Bạn có thể thực hiện việc này đơn giản bằng cách chạy tập lệnh sau trong SQLDeveloper:


VARIABLE csr REFCURSOR;
EXEC getRejectedReasons(:csr); -- the colon identifies the parameter as a variable
PRINT csr;

Một phương pháp khác là tìm nạp từng hàng và thực hiện một số loại xử lý:


DECLARE
  -- sys_refcursor is weakly typed
  refcsr  SYS_REFCURSOR;
  -- define a record so we can reference the fields
  rej_rec Reasons_for_Rejection%ROWTYPE;
BEGIN

  getRejectedReasons(refcsr);

   -- loop through the results  
   LOOP
      -- gets one row at a time
      FETCH refcsr INTO rej_rec;
      -- if the fetch doesn't find any more rows exit the loop
      EXIT WHEN refcsr%NOTFOUND;
      -- Do something here.  
      -- For example : DBMS_OUTPUT.PUT_LINE(rej_rec.reason_desc);
    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. Trừ 30 năm kể từ ngày hiện tại trong Oracle SQL

  2. Kết nối với Oracle bằng Oracle.ManagedDataAccess

  3. Kiểm tra chồng chéo nhanh hơn Oracle

  4. lưu ký tự đặc biệt ansi trong cơ sở dữ liệu oracle bằng php

  5. Cú pháp để xác định một thủ tục Oracle trong một thủ tục được lưu trữ khác là gì?