SQL*Plus에서 SQL 파일의 호출은 최대 20번까지만 내포될 수 있습니다.
테스트를 위해 아래와 같이 rc.sql 파일을 작성하겠습니다. 마지막 줄에서 rc.sql 파일을 재귀 호출합니다.
-- rc.sql
SET FEEDBACK OFF
SET SERVEROUTPUT ON
BEGIN
DBMS_OUTPUT.PUT_LINE (:b_repeats);
:b_repeats := :b_repeats + 1;
END;
/
@rc -- recursirve call
아래와 같이 b_repeats 바인드 변수를 선언하고 rc.sql 파일을 실행하면 20번의 재귀 호출 후에 SP2-0309 에러가 발생하는 것을 확인할 수 있습니다.
SQL> VAR b_repeats NUMBER = 1
SQL> @rc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
SP2-0309: SQL*Plus 명령어는 최대 20 까지의 깊이로만 내포될 수 있습니다.