oracle双引号拼接,oracle 单引号拼凑和动态sql | 学步园

a.单引号问题(')

在oracle中4个单引号''''代表一个单引号'。在动态sql拼凑中我们经常需要拼凑单引号。比如:

变量 中带单引号:IV_DATE_FORMAT:=''''||'YYYYMM'||'''';

动态sql中用单引号:sqlStr := 'select * from tbName where name = ' ||''''||nameValue||'''';

b.动态sql执行和传值(EXECUTE IMMEDIATE )

例子:update

EXECUTE IMMEDIATE 'UPDATE TF_B_DAILYSALES_STAT SET '||IV_COL_NAME||'=:1'||

' WHERE RES_KIND_CODE = :2'||

' AND BRAND_CODE = :3'||

' AND MODEL_CODE = :4'||

' AND EPARCHY_CODE = :5'||

' AND CITY_CODE = :6'||

' AND STOCK_ID = :7'||

' AND SALE_TYPE = :8'||

' AND SUBSTR(OPER_DATE_STR,1,6) = TO_CHAR(SYSDATE-1, '||IV_DATE_FORMAT||')'

USING RS.SALE_NUM, RS.RES_KIND_CODE, RS.BRAND_CODE, RS.MODEL_CODE, RS.EPARCHY_CODE, RS.CITY_CODE, RS.STOCK_ID, RS.SALE_TYPE;

例子:insert

EXECUTE IMMEDIATE 'INSERT INTO TF_B_DAILYSALES_STAT'||

'(TRADE_ID,'||

' OPER_DATE_STR,'||

' OPER_TIME,'||

' STAT_TYPE,'||

' RES_KIND_CODE,'||

' BRAND_CODE,'||

' MODEL_CODE,'||

' PROVINCE_CODE,'||

' EPARCHY_CODE,'||

' CITY_CODE,'||

' STOCK_ID,'||

' SALE_TYPE,'||IV_COL_NAME||

')VALUES(:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13)'

USING RS.TRADE_ID, RS.OPER_DATE_STR, RS.OPER_TIME, RS.STAT_TYPE, RS.RES_KIND_CODE, RS.BRAND_CODE,

RS.MODEL_CODE, RS.PROVINCE_CODE, RS.EPARCHY_CODE, RS.CITY_CODE, RS.STOCK_ID, RS.SALE_TYPE, RS.SALE_NUM;

说明:使用动态sql绑定变量形式可以达到sql存储共享,提高执行性能,比动态拼凑好sql再执行效率高。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值