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