oracle批处理参数调用,Oracle环境批处理执行参数化SQL异常

版本号:7.0.1

业务场景(如下):

为防止sql溢出,代码中使用了批处理形式,如下:

chiyan_2017_11_29_17_22_07_162544_M6ipC36lfnzxpnDoO4.png

预期效果(如下):

执行正常的Oracle环境,跟踪SQL如下:

DECLARE

CostCenterID VarChar(36);

sqlStr Varchar(2000);

BEGIN

CostCenterID:='c637104a-e292-47b5-8c57-a85b90fc0167';

sqlStr:=' begin

Update GoodsMovementItem set CostCenterID=:CostCenterID where GoodsMovementID||GoodsMovementItemID = ''000000000000000000290001'';

Update GoodsMovementItem set CostCenterID=:CostCenterID where GoodsMovementID||GoodsMovementItemID = ''000000000000000000290002'';

end;';

EXECUTE IMMEDIATE sqlStr using CostCenterID;

END;

实际效果(如下)(包括错误,异常):

执行功能时候报错,好像是参数化没起作用。

chiyan_2017_11_29_17_23_49_921333_LX3VXepsF6qYVkMCIX.png

跟踪的SQL如下:

begin

Update GoodsMovementItem set CostCenterID=:CostCenterID where GoodsMovementID||GoodsMovementItemID = '100100000000001554410001';

Update GoodsMovementItem set CostCenterID=:CostCenterID where GoodsMovementID||GoodsMovementItemID = '100100000000001554410002';

Update GoodsMovementItem set CostCenterID=:CostCenterID where GoodsMovementID||GoodsMovementItemID = '100100000000001554410003';

end;  CostCenterID='213b8bc7-cca3-4764-8c55-b561af0e9ed4'

SELECT SYSTIMESTAMP FROM DUAL

INSERT INTO GSPEXCEPTIONLOG (ID,INSTANCECODE,USERID,USERCODE,ERRORCODE,MODULECODE,HAPPENTIME,CLIENTINFO,SERVERINFO,EXCEPTIONMESSAGE,EXCEPTIONINFO,LICENSEINFO,LASTMODIFYTIME) VALUES(:param0,:param1,:param2,:param3,:param4,:param5,:param6,:param7,:param8,:param9,:param10,:param11,:param12)  param0='ae03bb1b-f4aa-4529-a34c-bf57873b10d0', param1='01', param2='6003', param3='6003', param4='', param5='', param6='2017/11/29 17:19:39', param7='chiyan01', param8='

10.24.12.152', param9='', param10='异常:

begin

Update GoodsMovementItem set CostCenterID=:CostCenterID where GoodsMovementID||GoodsMovementItemID = '100100000000001554410001';

Update GoodsMovementItem set CostCenterID=:CostCenterID where GoodsMovementID||GoodsMovementItemID = '100100000000001554410002';

Update GoodsMovementItem set CostCenterID=:CostCenterID where GoodsMovementID||GoodsMovementItemID = '100100000000001554410003';

end;

at

Genersoft.SC.CC.Core.CCMVCenterUpdate.CCMVCenterSet(DataTable dtSelects, String CostCenter)', param11='AAEAAAD/AQAAAAAAAAAGAQAAAAAL', param12='2017/11/29 17:19:39'

操作步骤(如下):

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值