Oracle SQL Developer에서 'trinidad & tobago'로 변수 대체를 방지하는 방법


111

나는 오라클 SQL 개발자 2.1 대화 상자에서이 문을 실행하려고하면 "대체 변수 입력" 에 대한 대체 값을 요청하는 팝업을 토바고 ,

update t set country = 'Trinidad and Tobago' where country = 'trinidad & tobago';

성명서의 목적을 모호하게 chr(38)하거나 u'trinidad \0026 tobago'두 가지 모두에 의지하지 않고이를 피할 수있는 방법은 무엇입니까?


1
이상하게도 SQL 개발자 2.1에서와 똑같은 쿼리를 실행하려고 할 때 대체 변수 창을 얻지 못했습니까? (그리고 내 정의는 가장 확실하게 on으로 설정되어 있습니다.)
wasatz

이 질문은 저에게 큰 도움이되었습니다.
Oh Chin Boon

답변:


192

쿼리 전에 이것을 호출하십시오.

set define off;

또는 해키 :

update t set country = 'Trinidad and Tobago' where country = 'trinidad &' || ' tobago';

SQL * Plus 튜닝 에서 :

SET DEFINE OFF는 대체 변수를 해당 값으로 바꾸는 명령 구문 분석을 비활성화합니다.


9
(그렇지 않으면) 무엇을 set define off;합니까?
Xonatron 2012 년

15

SQL * Plus SET DEFINE ?에서 스크립트 맨 위에 놓으면 일반적으로이 문제가 해결됩니다. Oracle SQL Developer에서도 작동 할 수 있습니다.


2
SET DEFINE? SQL Developer 2.1에서 변수 대체 동작을 억제합니다. Nick이 언급했듯이 SET DEFINE OFF도 작동합니다.
Janek Bogucki

세트는 작품을 정의하지만, DBA는 가끔 내가 왜 잘 모릅니다을 사용할 수 있도록 실 거예요
nikhil sugandh

1

이것은 CHAR (38)없이 요청한대로 작동합니다.

update t set country = 'Trinidad and Tobago' where country = 'trinidad & '|| 'tobago';

create table table99(col1 varchar(40));
insert into table99 values('Trinidad &' || '  Tobago');
insert into table99 values('Trinidad &' || '  Tobago');
insert into table99 values('Trinidad &' || '  Tobago');
insert into table99 values('Trinidad &' || '  Tobago');
SELECT * FROM table99;

update table99 set col1 = 'Trinidad and Tobago' where col1 = 'Trinidad &'||'  Tobago';

내 질문은 chr(38).
Janek

@JanekBogucki는 CHAR (38)를 사용하지 않고 지금 수정 걸릴
nikhil sugandh

이미 녹색 쳤다 대답을 가지고 내가 당신에게 다른 대답을했다하지만 당신을 downvoted
nikhil sugandh

당신은 당신이 나를 위해 해결 한 고통을 상상할 수 없습니다 .SQL 개발자는 스크립트를 실행할 때 set define off를 받아들이지 않습니다. 나를 위해이 솔루션
BrokenFrog

-3

나도 이것에 대해 약간의 문제가 있었다. DB에 대한 연결을 설정하려고 할 때마다 뭔가 시작되었습니다 ..

나를 위해 일한 것은 구성했을 수있는 시작 스크립트를 제거하는 것입니다!

Tools>Preferences...>Database, "연결 시작 스크립트의 파일 이름"이라는 텍스트 상자에있는 파일 경로를 제거하십시오!


-3

스캔 끄기; 위의 명령도 작동합니다.


이것은 질문에 대한 답을 제공하지 않습니다. 작성자에게 비판이나 설명을 요청하려면 게시물 아래에 댓글을 남겨주세요. 언제든지 자신의 게시물에 댓글을 달 수 있으며 충분한 평판을 얻으면 모든 게시물에 댓글을 달 수 있습니다. 관련이 있지만 다른 질문이있는 경우 컨텍스트를 제공하는 데 도움이된다면이 질문을 참조하는 새로운 질문을하십시오.
로한 Khude
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.