0

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

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

select *
from table1
where name = ?

然后我单击“参数”按钮并为我的参数名称设置“name1”。当我运行 ssis 时,出现错误:

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

所以我将参数名称更改为 ""00001"" 并且 ssis 工作正常。

现在,问题是同样的 ssis 需要在另一台 as400 服务器上运行,而且更旧的服务器,当它运行时显示错误:

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

因此,现在其他服务器需要不同的参数名称。

为了避免这个问题,是否有另一种使用不同于 Oledb Source 的东西来完成这个过程的方法?

我能做些什么?

4

2 回答 2

0

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

于 2013-04-12T07:33:09.580 回答
0

好吧,这似乎是一个 as400 错误,如下所示:[链接] http://social.msdn.microsoft.com/Forums/en-US/sqlintegrationservices/thread/5d6ef4f9-1a67-45d1-8a49-eb08becf1408/

在该线程上,一位用户说:“此错误与 IBM Client Access Tools 的 IBMDA400 直接相关。驱动程序将参数传递给 AS/400 时存在错误。我已经使用 HiT Software 的第三方驱动程序证明了这一点. 使用他们的驱动程序传递 00001 是正确的。”

因此,正如我所见,您使用的方法无关紧要,为了使其正常工作需要做的是传递具有 AS400 所需名称的参数。如果传递了具有正确名称的参数,则查询将正常工作。

于 2013-04-13T22:25:39.620 回答