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

Jak przechowywać wynik funkcji, która zwróci sysrefcursor?

Oto twoja funkcja, która pobiera zmienną varchar2 i zwraca A refcursor (o słabym typie).

 CREATE OR replace FUNCTION fn_return_cur(v IN VARCHAR2)
RETURN SYS_REFCURSOR
IS
  c1 SYS_REFCURSOR;
BEGIN
    OPEN c1 FOR
      SELECT 'ABC'
      FROM   dual
      WHERE  'col1' = v;

    RETURN c1;
END;

/  

Oto procedura, w której wartość kursora jest przekazywana jako argument do funkcji, a zwrócony kursor jako argument OUT.

 CREATE OR replace PROCEDURE Pr_pass_out_cur(v_2 OUT SYS_REFCURSOR)
IS
  func_arg  VARCHAR2(3);
  other_arg VARCHAR2(3);
  CURSOR c_2 IS
    SELECT 'ABC' col1,
           'DEF' col2
    FROM   dual;
BEGIN
    LOOP
        FETCH c_2 INTO func_arg, other_arg;

        EXIT WHEN c_2%NOTFOUND;

        v_2 := Fn_return_cur(func_arg);
    END LOOP;
EXCEPTION
  WHEN OTHERS THEN
             NULL;
END;

/  

Przekaż mi swoją opinię.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Odczytywanie danych POST z aplikacji Oracle Forms

  2. Gdzie w Oracle przechowywane są klasy Java?

  3. Nigdy więcej SPU

  4. Jak znaleźć zduplikowane kolejne wartości w tej tabeli?

  5. Co oznacza znak (+) w klauzuli Oracle SQL WHERE?