Run-Away Recursive Calls in Oracle

Q

What Happens If Recursive Calls Get Out of Control in Oracle?

✍: FYIcenter.com

A

What happens if your code has bug on recursive procedure calls, which causes an infinite number nested procedure calls? The answer is not so good. Oracle server seems to offer no protection calling stack limit. The script below shows you a badly coded recursive procedure. If you run it on an Oracle 10g XE server on Windows, your server will out of control and keep using virtual memory to satisfy the growing calling stack. You have to reboot your server to control back.

SQL> CREATE OR REPLACE PROCEDURE STACK_TEST AS
  2  --Warning: do not run this procedure on your server
  3    PROCEDURE STACK AS
  4    BEGIN
  5      STACK;
  6    END;
  7  BEGIN
  8    STACK;
  9  END;
 10  /

SQL> EXECUTE STACK_TEST;
(your server keep running with 100% CPU and memory usage)

 

Creating Oracle PL/SQL Procedures and Functions

⇒⇒Oracle Database Tutorials

2016-10-17, 153👍, 0💬