SSIS 执行存储在 table 列中的 sql 命令
SSIS execute sql commands stored in a column of a table
Error: error occurred while extracting the result into a variable of type (DBTYPE_WSTR). Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
我使用 SSIS 在 sql 列命令中放置了将 pdf 转换为 blob 的命令,它们已经过测试并且可以单独工作。所以我想查询 table 列并将其传递给 exec sql 任务并执行每个命令。我尝试了很多不同的东西,目前我有一个执行 sql 任务结果集在 ResultSet 中被设置为 "full result set" 名称被设置为 0 并且变量是 User::sqlcmds 这进入了一个 foreach 循环容器ADO 对象源变量的集合选项卡设置 = User::sqlcmds,枚举模式为第一个 table 中的行。变量映射选项卡的变量 = User::sqlcmdenu 和索引设置为 0。在 foreach 容器中,我有一个执行 sql 任务和 sql 语句设置为:
declare @sql nvarchar(max)
set @sql= CONVERT(NVARCHAR(4000),' ' + ?)
exec sp_executesql @sql
参数映射:变量名=user::sqlcmds,方向:输入,Datatype:NVARCHAR,参数名输入sqlcmd.
我做错了什么?
尝试使用数据流,现在尝试执行 sql 和 foreach。都不起作用。
Error: error occurred while extracting the result into a variable of type (DBTYPE_WSTR). Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
通过返回数据流任务让它工作:
oledb源有-> select convert(varchar(4000),cmd) cmd from attcmd
然后使用派生列转换 -> (DT_WSTR,4000)cmd(这解决了非 Unicode 到 Unicode 的问题)。
这是将组件属性选项卡设置为 -> 的 oledb 命令的输入
声明@sql nvarchar(max)
设置@sql= CONVERT(NVARCHAR(4000),?)
exec sp_executesql @sql 带结果集 NONE
务必将输入列的列映射设置为Param_0!
输入列的数据类型为DT_WSTR,Param_0数据类型为Unicode字符串[DT_WSTR]。
Error: error occurred while extracting the result into a variable of type (DBTYPE_WSTR). Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
我使用 SSIS 在 sql 列命令中放置了将 pdf 转换为 blob 的命令,它们已经过测试并且可以单独工作。所以我想查询 table 列并将其传递给 exec sql 任务并执行每个命令。我尝试了很多不同的东西,目前我有一个执行 sql 任务结果集在 ResultSet 中被设置为 "full result set" 名称被设置为 0 并且变量是 User::sqlcmds 这进入了一个 foreach 循环容器ADO 对象源变量的集合选项卡设置 = User::sqlcmds,枚举模式为第一个 table 中的行。变量映射选项卡的变量 = User::sqlcmdenu 和索引设置为 0。在 foreach 容器中,我有一个执行 sql 任务和 sql 语句设置为:
declare @sql nvarchar(max)
set @sql= CONVERT(NVARCHAR(4000),' ' + ?)
exec sp_executesql @sql
参数映射:变量名=user::sqlcmds,方向:输入,Datatype:NVARCHAR,参数名输入sqlcmd.
我做错了什么?
尝试使用数据流,现在尝试执行 sql 和 foreach。都不起作用。
Error: error occurred while extracting the result into a variable of type (DBTYPE_WSTR). Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
通过返回数据流任务让它工作: oledb源有-> select convert(varchar(4000),cmd) cmd from attcmd
然后使用派生列转换 -> (DT_WSTR,4000)cmd(这解决了非 Unicode 到 Unicode 的问题)。
这是将组件属性选项卡设置为 -> 的 oledb 命令的输入 声明@sql nvarchar(max) 设置@sql= CONVERT(NVARCHAR(4000),?) exec sp_executesql @sql 带结果集 NONE
务必将输入列的列映射设置为Param_0!
输入列的数据类型为DT_WSTR,Param_0数据类型为Unicode字符串[DT_WSTR]。