Oracle SQL转义符(用于'&')

在尝试使用Oracle SQL Developer执行SQL插入语句时,我一直在生成一个“inputreplace值”提示符:

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

我已经尝试使用上面的'\' 转义查询中的特殊字符,但我仍然无法避免与&符号,导致stringreplace。

前面的混蛋,让我的一天:)

&是DEFINE的默认值,它允许您使用replacevariables。 我喜欢closures它使用

SET DEFINE OFF

那么你将不必担心逃跑或CHR(38)。

|| chr(38) ||

这个解决scheme很完美。

将定义字符设置为“

 SET DEFINE〜
创build表blah(x varchar(20));
插入blah(x)值('blah&');
select*从等等。

 X                    
 -------------------- 
胡说和放大器 

 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

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

问题可能发生,因为转义被禁用,或转义字符被设置为'\'以外的东西。 上面的语句将启用转义并将其设置为“\”。


之前发布的其他答案都没有回答原来的问题。 他们都在解决这个问题,但不解决问题。