"maximum program calling depth exceeded"
*Cause: Your program contains a set of calls that are
too deep to be handled. Only transitions between the different
execution engines (SQL, PL/SQL, and Java) count in reaching this
limit; calls within the same engine don't count.
*Action: Restructure your program so as to not call so deeply.
Perhaps some recursion can be replaced with iteration.