Как избежать подстановки переменных в Oracle SQL Developer с помощью "trinidad & tobago"
Когда я пытаюсь выполнить это утверждение в Oracle SQL Developer 2.1, появляется диалоговое окно "Enter Substitution Variable", запрашивающее заменяющее значение для TOBAGO,
update t set country = 'Trinidad and Tobago' where country = 'trinidad & tobago';
Как я могу избежать этого, не прибегая к chr(38)
или u'trinidad \0026 tobago'
, которые и скрывают цель заявления?
Ответы
Ответ 1
Вызовите это перед запросом:
set define off;
Альтернативно, hacky:
update t set country = 'Trinidad and Tobago' where country = 'trinidad &' || ' tobago';
Из Настройка SQL * Plus:
SET DEFINE OFF отключает разбор команд для замены переменные замещения с их значениями.
Ответ 2
В SQL * Plus класть SET DEFINE ?
в верхней части script обычно решает это. Может работать и для Oracle SQL Developer.
Ответ 3
это будет работать, как вы просили без 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';
Ответ 4
установить сканирование;
Выше команда также работает.
Ответ 5
У меня тоже была проблема. Что-то начиналось каждый раз, когда я пытался установить соединение с любой БД..
Что сработало для меня, было удаление любого запуска script, который вы могли бы настроить!
то есть. Tools>Preferences...>Database
и
удалите любой путь к файлу, который у вас есть в текстовом поле с надписью
"Имя файла для запуска подключения script"!