프린트 하기

OS환경 : Oracle Linux6.8(64bit)


DB 환경 : Oracle Database 11.2.0.4


에러 : insert into test_tab1 values ('1','&2'); 시 &를 특수문자로 인식하는 문제


인서트 시 &2' 라는 텍스트를 넣고 싶을때

& 특수문자를 바인딩 변수설정하는 것으로 인식하는 문제

1
insert into test_tab1 values ('1','&2');


해결 방법 : 

SET DEFINE OFF 와 SET DEFINE % 그리고 SET ESCAPE on를 사용한다.

sqlplus 및 toad 등에서도 사용가능


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#첫번째 방법
SQL> select '&2' from dual;
Enter value for 2: ^C (취소Ctrl + C)
 
SQL> SET DEFINE OFF
SQL> select '&2' from dual;
 
'&2'
------
&2
 
1 row selected.
 
#두번째 방법
SQL> select '&2' from dual;
Enter value for 2: ^C (취소Ctrl + C)
 
SQL> SET DEFINE %
SQL> select '&2' from dual;
 
'&2'
------
&2
 
1 row selected.
 
#세번째 방법
SQL> select '&2' from dual;
Enter value for 2: ^C (취소Ctrl + C)
 
SQL> SET ESCAPE on
SQL> select '\&2' from dual;
 
'&2'
------
&2
 
1 row selected.



원인 : & 특수문자를 바인딩 변수설정하는 것으로 인식하기 때문에 발생한 문제




참조 : http://blog.daum.net/177117sky/42