Как избежать подстановки переменных в Oracle SQL Developer с помощью «Тринидад и Тобаго» - PullRequest
102 голосов
/ 25 февраля 2010

Когда я пытаюсь выполнить этот оператор в Oracle SQL Developer 2.1, появляется диалоговое окно «Введите переменную замещения» , запрашивающее значение для замены TOBAGO ,

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

Как мне избежать этого, не прибегая к chr(38) или u'trinidad \0026 tobago', которые затеняют цель утверждения?

Ответы [ 5 ]

174 голосов
/ 25 февраля 2010

Позвоните до запроса:

set define off;

В качестве альтернативы, хаки:

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

С Настройка SQL * Plus :

SET DEFINE OFF отключает разбор команд для замены переменные подстановки с их значениями.

14 голосов
/ 25 февраля 2010

В SQL * Plus размещение SET DEFINE ? в верхней части скрипта обычно решает эту проблему. Может работать и для Oracle SQL Developer.

0 голосов
/ 08 октября 2018

это будет работать так, как вы просили без 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';
0 голосов
/ 08 августа 2016

отключить сканирование; Над командой также работает.

0 голосов
/ 09 июля 2014

У меня тоже были проблемы с этим. Что-то запускалось каждый раз, когда я пытался установить соединение с любой БД.

Для меня сработало удаление любого сценария запуска, который вы могли настроить!

т.е. Tools>Preferences...>Database и удалите любой путь к файлу, который у вас есть в текстовом поле с надписью "Имя файла для скрипта запуска соединения"!

...