SSIS 无法在直接输入查询中使用 LIKE 分配给变量
SSIS Cannot assign to variable with LIKE in the direct input query
我有一个执行 SQL 任务,其中我执行以下直接输入:
select * from test
where FName like '%Alex%'
并将其分配给名为 User::NameSelected 的用户变量。
但是,当我 运行 查询时,出现以下错误:
[Execute SQL Task] Error: An error occurred while assigning a value to variable "NameSelected":
"The type of the value (DBNull) being assigned to variable "User::NameSelected" differs from the current variable type (String). Variables may not change type during execution. Variable types are strict, except for variables of type Object.".
当我 运行 没有 LIKE 的查询时,它可以 return 单行。但我需要使用 LIKE 从查询中获取结果。
我可以通过直接输入查询来完成吗?
您必须将 ResultSet 类型从 Single Row
更改为 Full ResultSet
,并将结果存储在类型 System.Object
的变量中。然后你应该使用脚本任务从变量中读取值。
有用的链接
- SSIS - How to access a RecordSet variable inside a Script Task
- SSIS Basics: Using the Execute SQL Task to Generate Result Sets
- Reading Execute SQL resultset from Script Task
我有一个执行 SQL 任务,其中我执行以下直接输入:
select * from test
where FName like '%Alex%'
并将其分配给名为 User::NameSelected 的用户变量。
但是,当我 运行 查询时,出现以下错误:
[Execute SQL Task] Error: An error occurred while assigning a value to variable "NameSelected": "The type of the value (DBNull) being assigned to variable "User::NameSelected" differs from the current variable type (String). Variables may not change type during execution. Variable types are strict, except for variables of type Object.".
当我 运行 没有 LIKE 的查询时,它可以 return 单行。但我需要使用 LIKE 从查询中获取结果。
我可以通过直接输入查询来完成吗?
您必须将 ResultSet 类型从 Single Row
更改为 Full ResultSet
,并将结果存储在类型 System.Object
的变量中。然后你应该使用脚本任务从变量中读取值。
有用的链接
- SSIS - How to access a RecordSet variable inside a Script Task
- SSIS Basics: Using the Execute SQL Task to Generate Result Sets
- Reading Execute SQL resultset from Script Task