Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да съхраня резултат от функция, която ще върне sysrefcursor?

Ето вашата функция, която приема променлива varchar2 и връща A refcursor (слабо въведен).

 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;

/  

Ето процедурата, която има стойност на курсора, предадена като аргумент на функцията и върнатия курсор, подадена като 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;

/  

Кажете ми вашите отзиви.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. създаване на изглед на Oracle въз основа на сравнение на данни между две таблици на база данни

  2. Можем ли да имаме 2 различни зависимости на Oracle от 2 различни бази данни в едно приложение на asp.net

  3. Как да покажа всички привилегии на база данни на Oracle за потребител

  4. Оптимизирайте Oracle Query

  5. Как да опиша проблема с производителността в релационна база данни?