ssis oledb源,找不到as400参数

ssis oledb源,找不到as400参数,ssis,Ssis,我正在使用ssis 2008,我正在尝试从as400数据库获取数据 我有一个数据流任务,在它里面,我有一个Oledb源,在那里,我有Sql命令的数据访问模式,我有一个查询: select * from table1 where name = ? 然后单击参数按钮,并将参数名称设置为“name1”。 当我运行SSI时,出现错误: 错误:SQL命令需要名为“00001”的参数,该参数为 在参数映射中找不到 因此,我将参数名更改为“00001”,SSI工作正常 现在的问题是,同样的SSI需要在另一台

我正在使用ssis 2008,我正在尝试从as400数据库获取数据

我有一个数据流任务,在它里面,我有一个Oledb源,在那里,我有Sql命令的数据访问模式,我有一个查询:

select *
from table1
where name = ?
然后单击参数按钮,并将参数名称设置为“name1”。 当我运行SSI时,出现错误:

错误:SQL命令需要名为“00001”的参数,该参数为 在参数映射中找不到

因此,我将参数名更改为“00001”,SSI工作正常

现在的问题是,同样的SSI需要在另一台as400服务器和旧的as400服务器上运行,运行时显示错误:

错误:SQL命令需要名为“”的参数,该参数为 在参数映射中找不到

因此,现在另一台服务器需要一个不同的参数名

为了避免这个问题,是否有其他方法可以使用与Oledb源不同的东西来完成这个过程


我能做什么?

我们正在使用sql 2012和as400系统,并且as400使用ODBC源代码。对于我们的设置,它似乎正在工作。所以试试ODBC。

好吧,这似乎是一个as400错误,如下所示:[链接]

在该线程上,一位用户说:“此错误与IBM客户端访问工具中的IBMDA400直接相关。驱动程序向AS/400传递参数存在错误。我已使用HiT软件中的第三方驱动程序证明了这一点。使用其驱动程序传递00001是正确的。”


因此,正如我所看到的,您使用的方法并不重要,要使其正常工作,需要做的是使用AS400所需的名称传递参数。如果传递了具有正确名称的参数,则查询将正常工作。

因此,我将在Windows中为as400创建一个ODBC源,方法是转到控制面板----管理工具----数据源(ODBC),并在那里设置ODBC源。但是我应该在数据流上使用哪个数据流源?在“连接管理器”中使用您在windows中创建的ODBC,然后在数据流中使用ODBC。“在“连接管理器”中使用您在windows中创建的ODBC…”这部分是可以的,但是……在“数据流”选项卡上,如果单击“工具箱”菜单,则有数据流源,我可以看到6个数据源,但看不到ODBC。你说的ODBC在哪里?我想可能是因为2008年。因为我在2012年看到这里有8个来源,所以他们现在才添加。也许你可以试试这个链接。可能会有帮助: