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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值