sql >> Database >  >> RDS >> Oracle

Hoe het resultaat van een functie op te slaan die sysrefcursor zal retourneren?

Hier is uw functie die een varchar2-variabele nodig heeft en een refcursor retourneert (zwak getypt).

 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;

/  

Hier is de procedure waarbij een cursorwaarde wordt doorgegeven als argument aan de functie en de geretourneerde cursor wordt doorgegeven als OUT-argument.

 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;

/  

Laat me je feedback weten.




  1. Ik heb een probleem met het formaat van de afbeelding in de blobkolom in orakel 12c

  2. UTF-8-compatibele afkapfunctie

  3. Grootboekrapportlogica in opgeslagen procedure

  4. Mysql-tijdstempel Gegevens afgekapt voor kolom