다음과 같은 세 가지 해결 방법이 있다.
1> SQL*Plus에서 SET DEFINE OFF나 SET SCAN OFF를 실행하여
substitution variable(&)을 turn off시킨다.
(Example)
sql> SET DEFINE OFF
sql> INSERT INTO table_name VALUES('AT&T');
/
1 row created
2> SET DEFINE ON 상태로 유지시키면서 substitution variable을
다른 non-alphanumeric 문자나 non-white space 문자(*, % 등등)로 대체시킨다.
(Example)
sql> SET DEFINE %
sql> INSERT INTO table_name VALUES('AT&T');
/
1 row created
3> SET ESCAPE ON 상태에서(DEFINE은 &로, SCAN은 ON 상태로 유지)
특수 문자 앞에 escape 문자인 backslash('\')를 붙인다.
(Example)
sql> SET ESCAPE ON
sql> SHOW ESCAPE
ESCAPE "\" (hex 5c)
sql> INSERT INTO table_name VALUES ('select * from emp
where ename=\&1');
1 row created.
sql> select * from table_name;
COL1
---------------------------------------------------------
SELECT * FROM EMP WHERE ENAME=&1
'을 문자 사이에 입력 하고 싶다면 ''와 같이 '를 2번 적어 주면 된다.
'DB > ORACLE' 카테고리의 다른 글
ora-00257:archiver error. Connect internal only, until freed (0) | 2015.03.09 |
---|---|
오라클 clob입력 설정 (0) | 2015.03.09 |
테이블 컬럼 정보 select문 (0) | 2015.03.09 |
ORA-01659 (0) | 2015.03.09 |
ORA-01033: ORACLE initialization or shutdown in progress (0) | 2015.03.05 |