При попытке выполнить инструкции SQL-вставки с помощью Oracle SQL Developer я продолжаю генерировать приглашение "Enter substitution value":
insert into agregadores_agregadores
(
idagregador,
nombre,
url
)
values
(
2,
'Netvibes',
'http://www.netvibes.com/subscribe.php?type=rss\&url='
);
Я пробовал экранирование специального символа в запросе с помощью '\' выше, но я все еще не могу избежать амперсанда, & ', вызывая замену строки.
Идем дальше, панк, сделай мой день:)
и является значением по умолчанию для DEFINE, которое позволяет использовать переменные замещения. Мне нравится отключать его, используя
SET DEFINE OFF
вам не придется беспокоиться о побеге или CHR (38).
|| chr(38) ||
Это решение идеально.
Задайте для символа определения значение, отличное от &
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=');
SELECT 'Free &' || ' Clear' FROM DUAL;
select 'one'||'&'||'two' from dual
Реальный ответ: вам нужно установить escape-символ в '\': SET ESCAPE ON
Возможно, проблема возникла либо из-за того, что экранирование было отключено, либо у escape-символа было установлено значение, отличное от '\'. Вышеприведенный оператор позволит экранировать и установить его в '\'.
Ни один из других ответов, опубликованных ранее, фактически не отвечает на исходный вопрос. Все они работают над проблемой, но не разрешают ее.