SP2-0309: SQL*Plus 명령어는 최대 20 까지의 깊이로만 내포될 수 있습니다.
·
SQL*Plus
SQL*Plus에서 SQL 파일의 호출은 최대 20번까지만 내포될 수 있습니다. 테스트를 위해 아래와 같이 rc.sql 파일을 작성하겠습니다. 마지막 줄에서 rc.sql 파일을 재귀 호출합니다.-- rc.sqlSET FEEDBACK OFFSET SERVEROUTPUT ONBEGIN 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 = 1SQL> @rc123456789..
변수 사용
·
SQL*Plus
개요 SQL*Plus에서 쿼리에 치환 변수를 사용하면 다수의 커서가 생성될 수 있습니다. 테스트를 위해 아래와 같이 테이블을 생성하겠습니다. -- 1 DROP TABLE t1 PURGE; CREATE TABLE t1 (c1 NUMBER); 치환 변수 아래 내용으로 t1.sql 파일을 생성하겠습니다. 쿼리에 &1 치환 변수(substitution variable)를 사용합니다. &1 치환 변수는 SQL 파일에 사용한 첫 번째 매개변수로 치환됩니다. -- 2 SELECT /* TEST1 */ * FROM t1 WHERE c1 = &1; 아래와 같이 t1.sql 파일을 실행하겠습니다. -- 3 @t1 1 @t1 2 아래는 V$SQL 뷰를 조회한 결과입니다. 치환 변수가 매개변수로 치환되어 2개의 커서가 생성된..