오라클에서 &등의 문자를 Insert하거나 Update하려고 하면 문제가 발생한다.
이 경우 간단하게 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';

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';


실행하려는 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

+ Recent posts