My Oracle Support Banner

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

To view full details, sign in with your My Oracle Support account.

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


In this Document
Symptoms
Cause
Solution
References

This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process and therefore has not been subject to an independent technical review.
My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.