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='
);


Я пробовал экранирование специального символа в запросе используя ' ' выше, но я все еще не могу избежать амперсанда, '&', вызывая замену строки.



вперед панки, сделайте мой день:)

667   7  

7 ответов:

& - Это значение по умолчанию для DEFINE, которое позволяет использовать переменные подстановки. Я хотел бы отключить его с помощью

SET DEFINE OFF

тогда вам не придется беспокоиться о побеге или chr(38).

|| chr(38) ||

Это решение идеально.

установите для символа define значение, отличное от &

SET DEFINE ~
create table blah (x varchar(20));
insert into blah (x) values ('blah&amp');
select * from blah;

X                    
-------------------- 
blah&amp 

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 НА

проблема могла возникнуть либо потому, что экранирование было отключено, либо escape-символ был установлен на что-то другое, чем '\'. Приведенное выше утверждение позволит избежать и установить его на '\'.


ни один из других ответов, опубликованных ранее, не отвечает на исходный вопрос. Все они работают вокруг проблемы, но не решить ее.

Comments

    Ничего не найдено.