При попытке выполнить операторы вставки SQL с помощью Oracle SQL Developer я продолжаю генерировать подсказку "Введите значение подстановки":
insert into agregadores_agregadores
(
idagregador,
nombre,
url
)
values
(
2,
'Netvibes',
'http://www.netvibes.com/subscribe.php?type=rss\&url='
);
Я пытался экранировать специальный символ в запросе, используя '\' выше, но я все еще не могу избежать амперсанда '& amp;', вызывающего подстановку строки.
Ответ 1
и является значением по умолчанию для DEFINE, которое позволяет использовать переменные замещения. Мне нравится отключать его, используя
SET DEFINE OFF
вам не придется беспокоиться о побеге или CHR (38).
Ответ 2
|| chr(38) ||
Это решение идеально.
Ответ 3
Задайте для символа определения значение, отличное от &
SET DEFINE ~
create table blah (x varchar(20));
insert into blah (x) values ('blah&');
select * from blah;
X
--------------------
blah&
Ответ 4
insert into AGREGADORES_AGREGADORES (IDAGREGADOR,NOMBRE,URL)
values (2,'Netvibes',
'http://www.netvibes.com/subscribe.php?type=rss' || chr(38) || 'amp;url=');
Ответ 5
SELECT 'Free &' || ' Clear' FROM DUAL;
Ответ 6
select 'one'||'&'||'two' from dual
Ответ 7
Реальный ответ: вам нужно установить escape-символ в '\':
SET ESCAPE ON
Возможно, проблема возникла либо из-за того, что экранирование было отключено, либо у escape-символа было установлено значение, отличное от '\'. Вышеприведенный оператор позволит экранировать и установить его в '\'.
Ни один из других ответов, опубликованных ранее, фактически не отвечает на исходный вопрос. Все они работают над проблемой, но не разрешают ее.