Як уникнути заміни змінної в 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.