나는 오라클 SQL 개발자 2.1 대화 상자에서이 문을 실행하려고하면 “대체 변수 입력” 에 대한 대체 값을 요청하는 팝업을 토바고 ,
update t set country = 'Trinidad and Tobago' where country = 'trinidad & tobago';
성명서의 목적을 모호하게 chr(38)
하거나 u'trinidad \0026 tobago'
두 가지 모두에 의지하지 않고이를 피할 수있는 방법은 무엇입니까?
답변
쿼리 전에 이것을 호출하십시오.
set define off;
또는 해키 :
update t set country = 'Trinidad and Tobago' where country = 'trinidad &' || ' tobago';
SQL * Plus 튜닝 에서 :
SET DEFINE OFF는 대체 변수를 해당 값으로 바꾸는 명령 구문 분석을 비활성화합니다.
답변
SQL * Plus SET DEFINE ?
에서 스크립트 맨 위에 놓으면 일반적으로이 문제가 해결됩니다. Oracle SQL Developer에서도 작동 할 수 있습니다.
답변
이것은 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';
답변
나도 이것에 대해 약간의 문제가 있었다. DB에 대한 연결을 설정하려고 할 때마다 뭔가 시작되었습니다 ..
나를 위해 일한 것은 구성했을 수있는 시작 스크립트를 제거하는 것입니다!
즉 Tools>Preferences...>Database
, “연결 시작 스크립트의 파일 이름”이라는 텍스트 상자에있는 파일 경로를 제거하십시오!
답변
스캔 끄기; 위의 명령도 작동합니다.