首页 文章

从SSIS执行as400命令执行sql任务的问题

提问于
浏览
2

我正在研究一个ssis包来处理从文本文件到 as400 系统的数据 . 在其中一个步骤中,我必须在iseries中创建现有文件对象的副本,并且我从execute sql task执行以下命令 .

{CALL QSYS.QCMDEXC('CRTDUPOBJ OBJ(CKFMTWRK) FROMLIB(MYWRKLIB) OBJTYPE(*FILE) TOLIB(MYWRKLIB) NEWOBJ(CKFMTWRKPN) DATA(*NO)',0000000101.00000)}

当我从IBM Personal Communications终端运行它时,此命令正常工作,但当我从SSIS包中执行此命令时,会抛出以下错误 .

[执行SQL任务]错误:执行查询“CALL QSYS.QCMDEXC('CRTDUPOBJ OBJ(CKFMTWRK)FROMLIB ...”失败,并显示以下错误:“找不到指定参数的常规* N * N.SQLSTATE:42884 ,SQLCODE:-440“ . 可能的失败原因:查询问题,”ResultSet“属性设置不正确,参数设置不正确或连接未正确 Build .

Further information on my environment:

我正在使用sql server数据工具2015.我已经使用Microsoft OLEDB Provider for DB2 Build 了与as400的连接 . 我在服务器上有足够的权限(我想,因为我能够从终端执行命令)

这是我第一次使用as400而且我在这一步中被困在这里 . 我尝试在线查找,但没有什么可以帮助我解决这个问题 .

任何建议/帮助将非常感激 .

谢谢 . DVR

1 回答

  • 0

    您正在尝试从SQL环境(SSIS)执行AS / 400 OS级别命令,这是不正确的 . QCMDEXEC是AS / 400命令行解释器,而CRTDUPOBJ是从源创建一个相同的对象,同时也可以复制其数据 .

    个人通信终端很好,你认为你使用的是SQL服务但实际上并非如此 . 这是AS400命令 .

    最后,你最好通过AS / 400终端来复制对象 . 只是用

    CRTDUPOBJ OBJ(CKFMTWRK)FROMLIB(MYWRKLIB)OBJTYPE(* FILE)TOLIB(MYWRKLIB)NEWOBJ(CKFMTWRKPN)数据(* NO)

    最后一个关键字DATA(* NO)表示仅创建对象而不是数据,因此您将在完成后获得一个空文件 .

相关问题