Compiling a PLSQL Function that Recursively Calls Itself Fails With: PLS-00801: internal error [2199] (Doc ID 1599500.1)

Last updated on NOVEMBER 12, 2013

Applies to:

PL/SQL - Version 9.2.0.8 and later
Information in this document applies to any platform.

Symptoms

Compiling a PLSQL function that recursively calls itself fails with the following exception stack:

      PLS-00801: internal error [2199]
      PL/SQL: SQL Statement ignored
      PL/SQL: ORA-06544: PL/SQL: internal error, arguments: [2199], [], [], [], [], [], [], []


For Example:

SQL> CREATE OR REPLACE FUNCTION
  2  testcase( i_type      IN VARCHAR2 DEFAULT 'NEW')
  3  RETURN NUMBER IS
  4  CURSOR c1 IS
  5  SELECT testcase(0) paytot
  6  FROM  emp;
  7  v_found      BOOLEAN;
  8  v_pay_total  NUMBER;
  9  e_return_zero EXCEPTION;
 10  BEGIN
 11  OPEN  c1;
 12  FETCH c1 INTO v_pay_total;
 13  CLOSE c1;
 14  RETURN(NVL(v_pay_total,0));
 15  EXCEPTION
 16  WHEN e_return_zero THEN
 17  RETURN(0);
 18  END testcase;
 19  /

Warning: Function created with compilation errors.

SQL> show errors
Errors for FUNCTION TESTCASE:

LINE/COL ERROR
-------- -----------------------------------------------------------------
0/0      PLS-00801: internal error [2199]
5/1      PL/SQL: SQL Statement ignored
5/8      PL/SQL: ORA-06544: PL/SQL: internal error, arguments: [2199], [], [], [], [], [], [], []

Cause

Sign In with your My Oracle Support account

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

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms