Escape-символ Oracle SQL (для'&')
при попытке выполнить инструкции SQL insert с помощью Oracle SQL Developer Я продолжаю генерировать подсказку "введите значение подстановки":
insert into agregadores_agregadores
(
idagregador,
nombre,
url
)
values
(
2,
'Netvibes',
'http://www.netvibes.com/subscribe.php?type=rss&url='
);
Я пробовал экранирование специального символа в запросе используя ' ' выше, но я все еще не могу избежать амперсанда, '&', вызывая замену строки.
вперед панки, сделайте мой день:)
7 ответов:
& - Это значение по умолчанию для DEFINE, которое позволяет использовать переменные подстановки. Я хотел бы отключить его с помощью
SET DEFINE OFF
тогда вам не придется беспокоиться о побеге или chr(38).
установите для символа define значение, отличное от &
SET DEFINE ~ create table blah (x varchar(20)); insert into blah (x) values ('blah&'); select * from blah; X -------------------- blah&
insert into AGREGADORES_AGREGADORES (IDAGREGADOR,NOMBRE,URL) values (2,'Netvibes', 'http://www.netvibes.com/subscribe.php?type=rss' || chr(38) || 'amp;url=');
реальный ответ вам нужно установить символ для '\': УСТАНОВИТЕ ESCAPE НА
проблема могла возникнуть либо потому, что экранирование было отключено, либо escape-символ был установлен на что-то другое, чем '\'. Приведенное выше утверждение позволит избежать и установить его на '\'.
ни один из других ответов, опубликованных ранее, не отвечает на исходный вопрос. Все они работают вокруг проблемы, но не решить ее.
Comments