1

我需要使用来自 AS/400 源的一个变量(在 WHERE 子句中)执行 SELECT 查询。我有一个 OLE DB 驱动程序,但它似乎不支持使用 ? [错误是来自 HRESULT 的异常:0x80040E10 (Microsoft.SqlServer.SQLTaskConnectionsWrap)]

显然,这应该可以通过以编程方式编辑我的 SQL(我从脚本任务中猜测)来实现,但我不确定在对象模型中的哪个位置可以找到与我的数据流任务相关的 SQL。

如果人们完全有其他建议,我也对此持开放态度,我只需要执行一个参数化查询,其中值替换客户端上的参数,然后再发送查询。谢谢!

4

1 回答 1

4

您最好的选择是创建一个变量来保存您的 sql 语句。

然后将变量设置为表达式,以便从您第一次尝试使用的变量中插入 where 子句。

您的表达将类似于:

="select col1, col2 from table_name where col3 = " + @[User::WhereClause]

然后,您可以将数据访问模式设置为来自 OLEDB 源中的变量的 SQL 命令,并将 OLEDB 源中的变量名称设置为您创建的变量。

这样,您为设置 where 子句变量而设置的所有逻辑仍将按您的预期工作。

于 2012-10-04T16:57:16.947 回答