Oracle SQL转义字符(对于'&')

时间:2009-07-16 12:50:17

标签: sql oracle escaping oracle-sqldeveloper

尝试使用Oracle SQL Developer执行SQL插入语句时,我会继续生成“输入替换值”提示:

insert into agregadores_agregadores 
(
 idagregador,
 nombre,
 url
) 
values 
(
 2,
 'Netvibes',
 'http://www.netvibes.com/subscribe.php?type=rss\&url='
);

我已经使用上面的'\'尝试了escaping the special character in the query,但我仍然无法避免使用'&',导致字符串替换。

继续小伙子,让我的一天:)

8 个答案:

答案 0 :(得分:116)

&&是DEFINE的默认值,它允许您使用替换变量。我喜欢使用

将其关闭

设定定义

然后你不必担心逃避或CHR(38)。

答案 1 :(得分:50)

|| chr(38) ||

这个解决方案很完美。

答案 2 :(得分:30)

将define字符设置为&

以外的其他字符
SET DEFINE ~
create table blah (x varchar(20));
insert into blah (x) values ('blah&amp');
select * from blah;

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

答案 3 :(得分:15)

insert into AGREGADORES_AGREGADORES (IDAGREGADOR,NOMBRE,URL)
values (2,'Netvibes',
'http://www.netvibes.com/subscribe.php?type=rss' || chr(38) || 'amp;url=');

答案 4 :(得分:9)

SELECT 'Free &' || ' Clear' FROM DUAL;

答案 5 :(得分:4)

select 'one'||'&'||'two' from dual

答案 6 :(得分:1)

真正的答案是你需要将转义字符设置为' \': SET ESCAPE ON

问题可能是因为转义被禁用,或转义字符被设置为' \'以外的其他内容。上述语句将允许转义将其设置为' \'。


之前发布的其他答案都没有实际回答原始问题。他们都解决了这个问题,但没有解决它。

答案 7 :(得分:0)

在您的请求前添加此

set define off;