SSIS - 在 OLE DB 源中仅指定一个参数,其中包含多个“?”
SSIS - specify only one parameter in OLE DB Source with multiple '?'
在编写我的 SQL 命令时,我指定 ?
以表明我想使用传入的参数。但是,对于我使用的每个 ?
,包都认为它是一个新参数,即使我想使用相同的参数也是如此。
6 ?
= 6 个新参数,尽管每个参数都相同。如参数 0 和 1
所示
有没有一种方法可以只指定一个参数?
谢谢
您能否在 SQL 语句脚本中声明一个变量,通过 ? 获取参数的值,然后使用该变量?
在 SQL 服务器上创建一个带有一个参数并包含正确查询的存储过程。使用一个参数调用存储过程。
您可以通过在 SQL 命令中声明一个变量并向其传递一个参数然后在 WHERE
子句中使用该变量来实现此目的。像下面这样
DECLARE @str AS INT
SET @str = ?
SELECT Column1
FROM Table1
WHERE (Column2= @str or Column3 = @str)
其他解决方法
1)
假设您要创建以下查询
Select * From Table1 Where [Column1] = ? Or [Column2] = ?
- 声明一个变量(例如:
User::strQuery
)
- 将您的参数存储在变量中(例如:
User::Value
)
- 将变量
EvaluateAsExpression
属性 设置为 True
将表达式设置为以下内容:
"Select * From Table1 Where [Column1] = " + @[User::Value] + " OR [Column2] = " + @[User::Value]
在OLEDB Source
中设置源为SQL Command from variable
并选择变量@[User::strQuery]
2)
您可以创建一个存储过程或一个 table 值函数,它们接受一个参数并将其用作源
在编写我的 SQL 命令时,我指定 ?
以表明我想使用传入的参数。但是,对于我使用的每个 ?
,包都认为它是一个新参数,即使我想使用相同的参数也是如此。
6 ?
= 6 个新参数,尽管每个参数都相同。如参数 0 和 1
有没有一种方法可以只指定一个参数?
谢谢
您能否在 SQL 语句脚本中声明一个变量,通过 ? 获取参数的值,然后使用该变量?
在 SQL 服务器上创建一个带有一个参数并包含正确查询的存储过程。使用一个参数调用存储过程。
您可以通过在 SQL 命令中声明一个变量并向其传递一个参数然后在 WHERE
子句中使用该变量来实现此目的。像下面这样
DECLARE @str AS INT
SET @str = ?
SELECT Column1
FROM Table1
WHERE (Column2= @str or Column3 = @str)
其他解决方法
1)
假设您要创建以下查询
Select * From Table1 Where [Column1] = ? Or [Column2] = ?
- 声明一个变量(例如:
User::strQuery
) - 将您的参数存储在变量中(例如:
User::Value
) - 将变量
EvaluateAsExpression
属性 设置为 True 将表达式设置为以下内容:
"Select * From Table1 Where [Column1] = " + @[User::Value] + " OR [Column2] = " + @[User::Value]
在
OLEDB Source
中设置源为SQL Command from variable
并选择变量@[User::strQuery]
2)
您可以创建一个存储过程或一个 table 值函数,它们接受一个参数并将其用作源