Ssis 2012 SSIS执行SQL任务MCH1202错误

Ssis 2012 SSIS执行SQL任务MCH1202错误,ssis-2012,db2-400,Ssis 2012,Db2 400,在我正在开发的SSIS包中,我有一个执行SQL任务,该任务使用ODBC连接到iSeries AS400上的数据库。该任务调用存储过程: {CALL DOCTRACK.CORRFEED (?,?,?,? )} 存储过程接受4个参数,即前2个输入和最后2个输出。 参数的数据类型分别为char8、integer、decimal7、0和char80。参数映射到包中与数据类型匹配的变量 运行包时,我在执行SQL任务时收到以下错误消息: [执行SQL任务]错误:执行查询{CALL DOCTRACK.COR

在我正在开发的SSIS包中,我有一个执行SQL任务,该任务使用ODBC连接到iSeries AS400上的数据库。该任务调用存储过程:

{CALL DOCTRACK.CORRFEED (?,?,?,? )}
存储过程接受4个参数,即前2个输入和最后2个输出。 参数的数据类型分别为char8、integer、decimal7、0和char80。参数映射到包中与数据类型匹配的变量

运行包时,我在执行SQL任务时收到以下错误消息:

[执行SQL任务]错误:执行查询{CALL DOCTRACK.CORRFEED?,?,?,?} 失败,出现以下错误:[IBM][System i Access ODBC Driver][DB2 for i5/OS]CEE9901- 应用程序错误。MCH1202在语句00000000 20处不受CORRFEED的监控,指令X'0000'。。 可能的失败原因:查询存在问题,ResultSet属性设置不正确, 参数设置不正确,或连接建立不正确


有人知道是什么导致了错误吗?

在存储过程的语句20中,试图引用检测到的BCD数据类型值无效。我们不知道要创建的DDL过程,也不知道什么是stmt/20;即使过程是SQL或外部的,也不会。考虑到问题显然是DB2fori和GenericDB2,我将更改为添加DB2i标记和DB2400标记,因为每次使用iSeries AS400名字对象时,系统可能都很陈旧。ref:msg MCH1202十进制数据错误。原因:压缩或分区十进制操作数的符号或数字代码出错。有效符号为十六进制A-F,有效数字范围为十六进制0-9。当在iseries中使用提供的参数值运行时,存储过程工作正常。我面前有存储过程的定义。我不确定哪一个是报表20。该问题来自使用SQLServer2012数据工具应用程序创建的我的sisis包。我尝试使用ODBC数据提供程序将连接管理器更改为ADO.NET连接。还是有同样的错误。回想起来,对于ado.net连接,我必须将?s更改为命名参数。我前面也没有存储过程,因此很明显,我也不知道什么是stmt/20。显然,问题与为decimal7,0参数的第三个参数标记传递的数据有关,stmt/20可能实际上是20 CORRFEED.P3=*decimal7,0*argv[3];。因此,不管使用文本\常量调用的能力如何,来自客户端的数据都存在明显的问题。为什么不使用嵌入式SQL尝试使用参数标记的本地调用;如果每件事都能被分享或保密,其他更容易或更好的建议可能会出现。