gaojingsong 阅读(56) 评论(0)

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 '%''%'