Як уникнути заміни змінної в Oracle SQL Developer „trinidad & tobago“


111

Коли я намагаюся виконати цю операцію в Oracle SQL Developer 2.1, з'явиться діалогове вікно "Ввести змінну заміни" з проханням про значення заміни для TOBAGO ,

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

Як я можу цього уникнути, не звертаючись до цього chr(38)або u'trinidad \0026 tobago'який неясний мету заяви?


1
Це дивно, коли я намагався запустити запит саме так, як у розробника SQL 2.1 я не отримав вікно змінної змінної? (І мої визначення, безумовно, налаштовані на)
wasatz

Це питання мені дуже допомогло.
Ой Чін Бун

Відповіді:


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

15

У SQL * Plus розміщення SET DEFINE ?у верхній частині сценарію зазвичай це вирішить. Можливо, працювати і для Oracle SQL Developer.


2
Встановити визначення? пригнічує поведінку підстановки змінної в SQL Developer 2.1. Як зазначає Nick SET DEFINE OFF також працює.
Янек Богуцький,

встановити задані роботи, але 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).
Янек Богуцький

@JanekBogucki вважай це правильно зараз, не використовуючи CHAR (38)
nikhil sugandh

я дав вам іншу відповідь, оскільки у вас вже є зелена галочка, але ви спростували
nikhil sugandh

Мате, ви не можете собі уявити, яку агонію ви вирішили для мене, розробник sql не приймає налаштування set off під час запуску сценарію. Це рішення для мене
BrokenFrog

-3

У мене теж було певне питання навколо цього. Щось щось починалося щоразу, коли я намагався встановити з'єднання з будь-якою БД.

Що для мене працювало - це видалити будь-який сценарій запуску, який ви, можливо, налаштували!

тобто Tools>Preferences...>Databaseвидаліть будь-який шлях до файлу у текстовому полі з написом "Ім'я файлу для запуску сценарію підключення"!


-3

встановити сканування; Над командою також працює.


Це не дає відповіді на запитання. Щоб критикувати або вимагати роз'яснення у автора, залиште коментар під їх публікацією - ви завжди можете коментувати власні публікації, і як тільки ви заробите достатню репутацію, ви зможете коментувати будь-яку публікацію. Якщо у вас є пов'язане, але інше питання, поставте нове запитання, посилаючись на це питання, чи допоможе він створити контекст.
Рохан Худе
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.