我在odbc源数据流任务中有一个需要获取参数的SQL命令,但添加它们的选项不存在.
我尝试将数据库添加为与ODBC提供程序的ADO.NET连接,但也没有可用的参数.还尝试将其作为OLEDB连接,但没有可用于ODBC的提供程序.设置所需的变量,我只是不能将它们作为参数添加.
所以我想知道的主要问题是:
是否有一种方法可以在ODBC源中为SQL命令添加参数
是否有可以使用ODBC的OLEDB提供程序?
我可以直接在查询中访问包变量吗?这会让我开放注入SQL吗?像这样.
"SELECT * FROM MyTable WHERE [id] = " + @[User::id]
编辑:
这是改变的表达方式
"SELECT Name, PhoneNum, Address FROM PERSON
WHERE Name = '" + @[User::Name] + "'
AND PhoneNum = '" + @[User::PhoneNum] + "'"
它在源代码中生成:
SELECT Name, PhoneNum, Address FROM PERSON
WHERE Name = ''
AND PhoneNum = ''
它会根据价值填写报价吗?
您必须在数据流外部使用表达式构建器.转到控制流选项卡,选择包含ODBC或ADO Net Source的数据流,然后查看属性窗口.您将在那里看到ODBC或ADO Net Source的属性,以及"Expressions"属性,您可以在其中设置表达式以生成动态SQL.
编辑
这是您更改房产的图片.您需要在数据流中设置通用SQL语句,单击"确定",然后返回到控制流程.然后右键单击您的数据流并单击属性.在表达式下,您可以选择SQL命令并使用变量构建它.