概述
在oracle字符串中,要进行字符串拼接时,需注意使用 ||进行拼接,否则就会出现一个特殊情况。
问题描述
问题
问题原因是笔者在Oracle数据库中以字符串进行存储ql表达式,但是刷完数据后ql表示式执行报错。原错误脚本字符串demo如下:
'
if(a==1&&b==2){
return true}
'
原因
经过笔者实验排查发现,Oracle中&&特殊字符若没有特殊处理会存储一个&
select '
if(a==1&&b==2){
return true}
'
from dual;
解决方式
使用||进行拼接,但是在字符串中进行拼接,所以要加单引号转义
select '
if(a==1 ' || '&' || '&' || 'b==2){
return true}
'
from dual;
特殊情况也可以规避问题
若将数据在plsql的command刷数据,及时不加特殊转义字符也是可以的,但保守起见,还是按照如上方案比较稳妥