SQL*Plus에서 '&'가 포함된 문자열을 변수로 인식하지 않게 하기

내 이 세상 도처에서 쉴 곳을 찾아보았으나, 마침내 찾아낸, 컴퓨터가 있는 구석방보다 나은 곳은 없더라.

SQL*Plus에서 '&'가 포함된 문자열을 변수로 인식하지 않게 하기

문자열 자체에 &가 포함되어 있는 경우 SQL*Plus에서 & 뒤의 단어를 변수로 인식해 그에 대한 값의 입력을 요구한다.

SQL> update tbl set a = 'hello&world' where ...
Enter value for world: _  < -- 입력을 기다림

이걸 어떻게 회피할 수 있을까?

해결 방법 1

다음 명령을 실행시킨 후 SQL 실행한다.

SQL> set define off

(SQL*Plus User's Guide and Reference에서 SET DEFINE OFF절 참조)

해결 방법 2

편법으로 다음과 같은 식으로 문자열 변경할 수도 있다.

'hello&world' --> 'hello&'||'world'

문자열에 &가 많을 경우 노가다 작업이 된다.