Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak wstawić zestaw wyników zwrócony przez procedurę składowaną Oracle do innej tabeli przy użyciu drugiej procedury składowanej?

Należy użyć KURSORA REF jako zwykły wyraźny kursor :

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. Czy istnieje sposób na utworzenie wielu wyzwalaczy w jednym skrypcie?

  2. Jquery w apex 4 Click event help

  3. Dlaczego wysyłanie zapytań do bazy danych zgodnej z JDBC z Oracle nie jest dziecinnie proste?

  4. ORA-00936 Podczas korzystania z funkcji daty w wyroczni wybierz oświadczenie

  5. Jak przeanalizować xml według xmltable podczas korzystania z przestrzeni nazw w xml(Oracle)