今天在用plsql中进行某个列值得更新的时候发现目的值中包含了引号,
当然直接写的话,会报告说是 未正确结束啥的。
1 当然可以用plsql工具,select t.*,rowid from XXX t;
的方式进行逐个的更改
2 直接用sql语句进行处理
下面是在网上找的.......
如下SQL语句就不能正确运行:
select 'Alibaba&Taobao' from dual;
处理方法:
用Oracle的字符串处理函数chr处理。chr(38)表示 &符号
如:select chr(38) from dual;
结果:&
select 'Alibaba'||chr(38)||'Taobao' from dual;
结果:Alibaba&Taobao
其他不能处理的特殊符合,也用类似的方式处理。如果不知道该特殊符号的ascii值,可以调用ascii函数处理,
如:select ascii('&') from dual;
结果:38
再附一个单引号(')的例子(I'm OK):
1. SELECT 'I' || '''m OK' from dual;
2. SELECT 'I''m OK' from dual;
3. SELECT 'I'||Chr(39)||'m OK' FROM dual;
1,2中的是个转义符号的应用,就是直接 在单引号前面增加一个单引号就好了。
3中的是字符替换