[Oracle] Set Define Off; 을 통해 & 특수문자를 저장하기

Set Define Off; 을 통해 & 특수문자를 저장하기

개발도구에서 Insert 문장을 백업 할 때 보이는 Set Define Off;가 무엇을 뜻하지 알아보겠습니다.

SQLPLUS & 입력하기

테이블 TB_TEST 내에 있는 컬럼 V 에 대하여, 'You & I' 라는 문자를 입력해 보았을 때를 가정해 봅시다.

i 의 값을 입력하라고 합니다. 원래 의도는 'You & I'를 입력하려고 하였으나, i가 & 때문에 입력하는 값으로 인식이 되어 버린 것이랍니다.

U 를 입력하고 엔터를 눌러보겠습니다.

데이터 'You & I' 를 인서트 하려고 시도하였으나, 실제로 데이터는 'You U'가 인서트 되어 행이 만들어진 것을 확인할 수 있습니다. 결국, '& I'가 'U'로 대체된 것이랍니다.

실제로도 'You & I' 가 아니라 'You U' 로 행이 생성됨을 확인할 수 있습니다.

Show Define; 을 입력하면 define "&" (hex 26) 을 확인할 수 있습니다. & 문자는 기본적으로 변수설정문자입니다! 해당 게시물의 핵심 주제이기도 하답니다.

오늘의 주제, Set Define Off; 를 입력하면 define OFF 가 되는 것을 확인할 수 있습니다.

Insert into TB_TEST(v) values ('You & I'); 가 바로 입력이 됩니다. 즉, 특수문자 & 을 단순문자로 입력합니다.

Set Define On; 하시면 다시 & 문자를 변수설정자로 지정합니다.

You U (Set Define On;) You & I (Set Define Off;) 행을 확인할 수 있습니다.

결과적으로 Set Define Off는 &과 같은 특수문자를 문자 그대로 보도록 하는 이스케이프 역할을 하는 것을 확인할 수 있습니다.

댓글