Как избежать подстановки переменных в Oracle SQL Developer с помощью «Тринидад и Тобаго»

97

Когда я пытаюсь выполнить это утверждение в 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
    Странно, что когда я попытался выполнить запрос, точно такой же, как в SQL-разработчике 2.1, я не получил окно замены переменной? (И мои определения, безусловно, включены)
  • 0
    Этот вопрос мне очень помог.
Теги:
oracle-sqldeveloper

5 ответов

165
Лучший ответ

Вызовите это перед запросом:

set define off;

Альтернативно, hacky:

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

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

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

  • 9
    Что (еще) set define off; делать?
14

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

  • 2
    УСТАНОВИТЬ ОПРЕДЕЛИТЬ? подавляет поведение подстановки переменных в SQL Developer 2.1. Как отметил Ник SET DEFINE OFF также работает.
  • 0
    set define работает, но администратор базы данных не позволяет использовать его иногда, я не знаю, почему
0

это будет работать, как вы просили без 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
    Мой вопрос был о том, как это можно сделать без использования chr(38) .
  • 0
    @JanekBogucki принять его правильно сейчас без использования CHAR (38)
Показать ещё 1 комментарий
-2

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

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

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

-3

установить сканирование; Выше команда также работает.

  • 0
    Это не дает ответа на вопрос. Чтобы критиковать или запрашивать разъяснения у автора, оставьте комментарий под его постом - вы всегда можете комментировать свои собственные посты, и, как только вы заработаете достаточную репутацию, вы сможете комментировать любой пост. Если у вас есть связанный, но другой вопрос, задайте новый вопрос со ссылкой на этот вопрос, если он поможет обеспечить контекст.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню