Oracle DEFINE 및 VERIFY COMMAND

Oracle DB

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
제목과 URL을 복사했습니다