Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

bagaimana cara kerja prosedur tersimpan Oracle (dengan kursor)?

Prosedur tersimpan mengembalikan sesuatu hanya saja Anda tidak melakukan apa pun dengan hasilnya.

Anda dapat melakukannya hanya dengan menjalankan skrip berikut di SQLDeveloper:


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

Metode lain adalah mengambil setiap baris dan melakukan semacam pemrosesan:


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. Java-Eclipse:Paket oracle.jdbc.driver tidak ada

  2. RobotFramework:cx_Oracle - GAGAL:InternalError:Tidak ada kesalahan Oracle?

  3. Mengoptimalkan kode dalam PL/SQL. Membuatnya menjadi tepat. Kode berjalan tetapi tidak tepat

  4. Buat pemicu yang memperbarui kolom di satu tabel saat kolom di tabel lain diperbarui

  5. Buat salinan Basis Data Uji Produksi hanya dengan kumpulan sampel Data