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

Bagaimana cara memasukkan set hasil yang dikembalikan oleh prosedur tersimpan Oracle ke tabel lain menggunakan prosedur tersimpan kedua?

Anda akan menggunakan KURSOR REF sebagai kursor eksplisit biasa :

SQL> CREATE TABLE employee AS
  2  SELECT rownum id, 'XXX' name
  3    FROM DUAL CONNECT BY level <= 10;
Table created.

SQL> CREATE OR REPLACE PROCEDURE find_employees (
  2    emp_id NUMBER,
  3    employee_cursor OUT SYS_REFCURSOR
  4  ) IS
  5  BEGIN
  6      open employee_cursor for
  7      select * from employee WHERE id = emp_id;
  8  END;
  9  /

Procedure created.

SQL> CREATE OR REPLACE PROCEDURE do_something IS
  2     cc sys_refcursor;
  3     l employee%rowtype;
  4  BEGIN
  5     find_employees(1, cc);
  6     LOOP
  7        FETCH cc INTO l;
  8        EXIT WHEN cc%NOTFOUND;
  9        dbms_output.put_line(l.id||'-'||l.name);
 10     END LOOP;
 11  END;
 12  /
Procedure created.

SQL> EXEC do_something;
1-XXX


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan IW dan MM di Oracle

  2. Mengonversi kueri oracle ke kueri MySQL

  3. Oracle:Cara Tercepat di PL/SQL untuk Melihat apakah Ada Nilai:Daftar, VARRAY, atau Tabel Temp

  4. Mengakses tabel tanpa menentukan nama skema

  5. Bagaimana cara mendesain tabel yang akan menyimpan data yang sangat besar?