700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > oracle双引号拼接 oracle 单引号拼凑和动态sql | 学步园

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

时间:2021-11-09 01:04:00

相关推荐

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再执行效率高。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。