DEFINE 커맨드
SQL문 실행전에 다시 한 번 치환변수의 값을 셋팅해둘 수 있습니다.
DEFINE 변수명 = 값
예시
DEFINE 커맨드로 선언한 변수는 문자형의 변수로서 취급되며 UNDEFINE 커맨드로 삭제할 때까지 값은 유지됩니다.
DEFINE df = 20
SELECT ename, job, deptno FROM emp WHERE deptno = &df;
df라는 변수에 20을 지정하고 deptno의 값과 df와 값이 일치하는 데이터를 출력하는 SQL문입니다. 사전에 지정된 값에 따라 deptno가 20인 데이터가 출력되는 것을 확인할 수 있습니다.
SQL> DEFINE df = 20
SQL> SELECT ename, job, deptno FROM emp WHERE deptno = &df;
old 1: SELECT ename, job, deptno FROM emp WHERE deptno = &df
new 1: SELECT ename, job, deptno FROM emp WHERE deptno = 20
ENAME JOB DEPTNO
---------- --------- ----------
SMITH CLERK 20
JONES MANAGER 20
FORD ANALYST 20
VERIFY 커맨드
디폴트에서는, 치환 변수 사용 시에 문자를 실행하면 치환변수에 대한 대입 전, 대입 후를 나타내는 구 나 신의 메시지가 표시됩니다. 이 표시는 SQL*Plus 환경 변수인 VERIFY 변수에 따라 표시/비표시를 제어할 수 있습니다.
・SET VERIFY ON : SQL문 실행시 old나 new 메시지를 표시
・SET VERIFY OFF : SQL문 실행시 old나 new 메시지를 비표시
・SHOW VERIFY : VERIFY 커맨드의 현재 설정을 표시
현재 VERIFY 옵션 설정을 확인하겠습니다. VERIFY 옵션이 디폴트 값인 ON으로 설정 되어있는 것을 알 수 있습니다.
SQL> SHOW VERIFY
verify ON
VERIFY ON 상태로 SELECT문을 실행하면 아래와 같이 old, new가 표시됩니다.
SQL> SELECT empno, ename, job FROM emp
2 WHERE deptno = #
Enter value for num: 20
old 2: WHERE deptno = &num
new 2: WHERE deptno = 20
EMPNO ENAME JOB
---------- ---------- ---------
7369 SMITH CLERK
7566 JONES MANAGER
7902 FORD ANALYST
VERIFY 옵션을 OFF로 지정할 경우, 다시 확인하면 OFF로 바뀐 것을 확인할 수 있습니다.
SQL> SET VERIFY OFF
SQL> SHOW VERIFY
verify OFF
VERIFY OFF 상태로 SELECT문을 실행하면 아래와 같이 old, new가 표시되지 않습니다.
SQL> SELECT empno, ename, job FROM emp
2 WHERE deptno = #
Enter value for num: 20
EMPNO ENAME JOB
---------- ---------- ---------
7369 SMITH CLERK
7566 JONES MANAGER
7902 FORD ANALYST