오라클에서 &등의 문자를 Insert하거나 Update하려고 하면 문제가 발생한다.
이 경우 간단하게 set define off명령을 통해 처리할 수 있다.
예를 들어 아래와 같은 sql은 수행되지 않는다.
Insert하려는 문자열 속에 특수문자가 있기 때문이다. (마크된 특수 문자들...)
'tcp://127.0.0.1:61616?AsyncConnect=true&initialReconnectDelay=100&maxReconnectDelay=1000'
이러한 White Space가 포함된 SQL문을 수행하기위해서
Set Define명령을 통해 sql에 있는 특수문자를 일시적으로 무시하도록 하면 된다.
실행하려는 sql문 앞에만 set define off를 써주면 되고,
그 줄에만 효력이 발생하므로 다시 set define on 등을 할 필요는 없다.
이 경우 간단하게 set define off명령을 통해 처리할 수 있다.
예를 들어 아래와 같은 sql은 수행되지 않는다.
UPDATE adm_amq_info
SET amq_uri =
'tcp://127.0.0.1:61616?AsyncConnect=true&initialReconnectDelay=100&maxReconnectDelay=1000'
WHERE amq_typ = 'yt' AND amq_nm = 'message';
SET amq_uri =
'tcp://127.0.0.1:61616?AsyncConnect=true&initialReconnectDelay=100&maxReconnectDelay=1000'
WHERE amq_typ = 'yt' AND amq_nm = 'message';
Insert하려는 문자열 속에 특수문자가 있기 때문이다. (마크된 특수 문자들...)
'tcp://127.0.0.1:61616?AsyncConnect=true&initialReconnectDelay=100&maxReconnectDelay=1000'
이러한 White Space가 포함된 SQL문을 수행하기위해서
Set Define명령을 통해 sql에 있는 특수문자를 일시적으로 무시하도록 하면 된다.
Set Define off
UPDATE adm_amq_info
SET amq_uri =
'tcp://172.21.3.81:61616?AsyncConnect=true&AsyncTimeout=3000&initialReconnectDelay=100&maxReconnectDelay=1000'
WHERE amq_typ = 'yt' AND amq_nm = 'message';
UPDATE adm_amq_info
SET amq_uri =
'tcp://172.21.3.81:61616?AsyncConnect=true&AsyncTimeout=3000&initialReconnectDelay=100&maxReconnectDelay=1000'
WHERE amq_typ = 'yt' AND amq_nm = 'message';
실행하려는 sql문 앞에만 set define off를 써주면 되고,
그 줄에만 효력이 발생하므로 다시 set define on 등을 할 필요는 없다.
Google AdSense
'끄적끄적 > Programming' 카테고리의 다른 글
[XNA] FPS측정을 통한 BenchMark (2) | 2011.03.18 |
---|---|
[.NET] Windows.Form 윈도 이벤트 발생 순서 (0) | 2011.03.16 |
[XNA] XNA 흐름 (0) | 2010.05.17 |
[Oracle] 순위함수 Rank() (2) | 2009.12.21 |
[.NET] LC.EXE 오류와 해결책 (11) | 2009.06.08 |