我正在使用ssis 2008,我正在尝试从as400数据库中获取数据。
我有一个数据流任务,在里面,我有一个Oledb源,在那里,我有数据访问模式到Sql Command,我有一个查询:
select *
from table1
where name = ?
然后我点击参数按钮并设置“name1”作为参数名称。 当我运行ssis时,我收到了错误:
错误:SQL命令需要一个名为“00001”的参数,即 在参数映射中找不到。
所以我将参数名称更改为“”00001“”并且ssis工作正常。
现在,问题是这个相同的ssis需要在另一个as400服务器上运行,而旧版本的服务器运行它并显示错误:
错误:SQL命令需要一个名为“”的参数,即 在参数映射中找不到。
因此,现在其他服务器需要不同的参数名称。
是否有其他方法使用与Oledb Source不同的方法来执行此过程以避免此问题?
我该怎么办?
答案 0 :(得分:0)
我们正在使用sql 2012和as400系统,我们使用as400的ODBC源代码。对于我们的设置,它似乎正在工作。所以试试ODBC。
答案 1 :(得分:0)
好吧,这似乎是一个as400错误,如下所示:[link] 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所需名称的参数。如果传递了具有正确名称的参数,则查询将正常工作。