【Oracle特殊字符的处理方式】

plsql中还可以set define off来关闭特殊字符,还可以用show define来查看有些特殊定义的字符。

Oracle数据有个字段是存储url的,内容有特殊字符&,如果直接想执行查询或插入操作的话有问题,如下:

在plsql里边执行:

update userinfo set pageurl='test.php?page=1&pagesize=10' where id='test'

这条sql语句往数据库的pageurl字段放进去了一个url地址,但是执行的时候却并非那么理想,因为这其中有一个oracle的特殊字符,需要进行转义,那就是字符'&'.

怎么处理上例中的特殊字符?

两个办法:

 1) update userinfo set pageurl='test.php?page=1'||'&'||'pagesize=10' where id='test'

 2) update userinfo set pageurl='test.php?page=1'||chr(38)||'pagesize=10' where id='test'

我们使用了|| 连字符, chr(38)跟ASCII的字符转码是一致的。

方法一

select ascii('&') from dual;

select chr(38)    from dual; 

方法二

单引号('),将一个单引号变为两个单引号即可

insert into test(name) values('''')

select * from test where name like '%''%'

猜你喜欢

转载自gaojingsong.iteye.com/blog/2437351