oracle 中存在一些特殊变量是不允许直接插入到数据库中的,在插入的时侯提示你进行变量替换的时候就出问题啦。常见如网址中的 & 符,如何才能顺利的插入到数据库中呢
解决办法:
1 查询,确认用ascill码替换是正确的
eg select chr(38) from dual;
显示结果为 &,则表明用chr(38)替换 & 是无误的。
2进行替换
eg
//准备插入的sql语句为
update tableTest set newURL='http://www.baidu.com?A=t1&B=t2&C=t3 where rowId=121'
则替换后准备插入的sql语句如下
update tableTest set newURL='http://www.baidu.com?A=t1'||chr(38)||'B=t2'||chr(38)||'C=t2' where rowId=121;
解释要点:
替换时 chr(38)外层还要用字符链接|| 连接起来。
处于字符串中时,外层还的包括一个单引号。即 &==‘||chr(38)||’。在字符串中替换即可搞定。遇到其他的需要插入的特殊字符类似。比如 chr(40) 为 ( 左括号。