PL/SQL (MOSC)

MOSC Banner

ORA-06511 in recursive routine

edited Jan 12, 2011 1:33AM in PL/SQL (MOSC) 5 commentsAnswered
Hi,

I am opening a cursor in a recursive function:

-------------------------------------------

CREATE OR REPLACE PACKAGE TEST
    AUTHID CURRENT_USER
AS
    FUNCTION  Recursive_Func (param VARCHAR2)
        RETURN VARCHAR2;
END TEST;
/

CREATE OR REPLACE PACKAGE BODY TEST AS

    CURSOR c_Test
    IS
        SELECT DISTINCT
               ...
          FROM
               ...
         WHERE
               ...;

    FUNCTION  Recursive_Func (p_param VARCHAR2)
        RETURN VARCHAR2
    IS
        Value VARCHAR2(500);
    BEGIN
        FOR r_Test IN c_Test
        LOOP
            IF condition THEN
                Value := Other_NonRec_Func
                            (Value,
                             Recursive_Func(r_Test.column));
            END IF;
        END LOOP;

        RETURN Value;
    END Recursive_Func;
END TEST;
/
-------------------------------------------

The result is

The result is

ORA-06511: PL/SQL: cursor already open

Howdy, Stranger!

Log In

To view full details, sign in to My Oracle Support Community.

Register

Don't have a My Oracle Support Community account? Click here to get started.

Category Leaderboard

Top contributors this month

New to My Oracle Support Community? Visit our Welcome Center

MOSC Help Center