Как игнорировать амперсанды в SQL-скрипте, запущенном из SQL Plus?
У меня есть SQL скрипт, который создает пакет с комментарием, содержащие амперсанд (&). Когда я запускаю скрипт из SQL Plus, мне предлагается ввести заменяющее значение для строки, начинающейся с &. Как отключить эту функцию, чтобы SQL Plus игнорировал амперсанд?
7 ответов:
Это может работать для вас:
set define offв противном случае амперсанд должен быть в конце строки
'StackOverflow &' || ' you'EDIT:я был счастлив при сохранении... Это было указано из блог.
Если вы иногда использовать замену переменных, которые вы, возможно, не хотите свою очередь, определяют выкл. В этих случаях вы можете преобразовать амперсанд из его числового эквивалента, как в
|| Chr(38) ||или добавить его как один символ, так как в|| '&' ||.
вы можете установить специальный символ, который ищется при выполнении скрипта, в другое значение с помощью
SET DEFINE <1_CHARACTER>по умолчанию сама функция DEFINE включена и имеет значение &
Он может быть отключен - как уже упоминалось - но его можно также избежать, установив его на другое значение. Будьте очень внимательны к тому, какой знак вы установили. В приведенном ниже примере я выбрал символ#, но этот выбор просто образец.
SQL> select '&var_ampersand #var_hash' from dual; Enter value for var_ampersand: a value 'AVALUE#VAR_HASH' ----------------- a value #var_hash SQL> set define # SQL> r 1* select '&var_ampersand #var_hash' from dual Enter value for var_hash: another value '&VAR_AMPERSANDANOTHERVALUE' ---------------------------- &var_ampersand another value SQL>
set define off
Я тоже пробовал...
set define }
мне удалось вставить несколько записей, содержащих символы амперсанда'&', но я не могу использовать символ '}' в текст Поэтому я решил использовать "set define off", и все работает так, как должно.
по данным это хороший FAQ есть несколько решений.
вы также можете избежать амперсанда с обратной косой чертой
\Если вы можете изменить комментарий.
У меня был оператор CASE с WHEN column = 'sometext & more text' тогда ....
Я заменил его Когда столбец = 'sometext' | | CHR(38) / / 'больше текста' тогда ...
вы также можете использовать Когда столбец, как "sometext _ больше текста", то ...
(_является подстановочным знаком для одного символа)
Comments