ORA-06511 in recursive routine
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