sql单引号的嵌套

在写sql语句的时候,常常会遇到单引号嵌套的情况,比如:

update IM_SVFLOWINFO set SFI_VALUE ='通知存款开立',

SFI_TRANSQL ='select t.ido_flowno,t.ido_cstno,getSttName(t.ido_stt),t.ido_submittime,cast('通知存款开立' as varchar2(50)) from CB_INFORM_DEPOSIT_OPEN t  where 0=0'

where SFI_ID ='100000000017';

我们不用仔细去看这句话到底是什么意思,它只是说明在某个表的某个字段里面存储了sql,这个sql里带了单引号,那么在整个sql的外面加单引号时就会报错,用双引号和单引号嵌套的做法是行不通的,具体原因貌似跟QUOTED_IDENTIFIER有关,还没有搞清楚。

这时候我们可以用''(两个单引号不是双引号)来表示一个单引号,即第一个单引号是转义字符,第二个是真正的单引号,于是上面的句子可以写成这样:

update IM_SVFLOWINFO set SFI_VALUE ='通知存款开立',

SFI_TRANSQL ='select t.ido_flowno,t.ido_cstno,getSttName(t.ido_stt),t.ido_submittime,cast(''通知存款开立'' as varchar2(50)) from CB_INFORM_DEPOSIT_OPEN t  where 0=0'

where SFI_ID ='100000000017';

再如: str varchar2;

str='0''0';  的结果是0'0

猜你喜欢

转载自vvv-110.iteye.com/blog/1759644
今日推荐