Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在SSDT 2017中将变量传递给ODBC SQL命令?_Sql Server_Ssis_Odbc_Etl_Sqlcommand - Fatal编程技术网

Sql server 如何在SSDT 2017中将变量传递给ODBC SQL命令?

Sql server 如何在SSDT 2017中将变量传递给ODBC SQL命令?,sql-server,ssis,odbc,etl,sqlcommand,Sql Server,Ssis,Odbc,Etl,Sqlcommand,我找不到向ODBC源传递参数的选项?我可以看到很多与此相关的文章,但在数据流任务表达式中找不到相同的选项。[ODBC Source].[SqlCommand]不在数据流任务的目录中 第一条如下: 有人能帮忙吗?我认为由于Visual Studio、SSDT和SQL Server版本之间的不匹配,该属性丢失了。首先,您必须检查您使用的是相关和适当的版本,您可以查看以下链接以了解更多信息: 还要尝试检查包目标服务器版本: 类似问题链接 更新1 在搜索此问题时,我发现

我找不到向ODBC源传递参数的选项?我可以看到很多与此相关的文章,但在数据流任务表达式中找不到相同的选项。
[ODBC Source].[SqlCommand]
不在数据流任务的目录中

第一条如下:


有人能帮忙吗?

我认为由于Visual Studio、SSDT和SQL Server版本之间的不匹配,该属性丢失了。首先,您必须检查您使用的是相关和适当的版本,您可以查看以下链接以了解更多信息:

还要尝试检查包目标服务器版本

类似问题链接


更新1 在搜索此问题时,我发现在2012(20052008)之前的版本中可能找不到
[ODBC Source].[SqlCommand]
属性,但我找到了一个提到解决方法的链接:

如果源代码是OLE DB源代码,则可以轻松地输入参数,但如果是ODBC源代码,该怎么办?您必须使用DataReader源代码,并且不能轻松设置参数,比如WHERE语句。您必须使用表达式才能使用带有动态WHERE语句的查询,或将变量作为WHERE语句筛选器传递

因此,在包上抛出一个数据流,并在其中抛出一个DataReader源,然后将连接设置为ODBC连接(ADO.NET连接)并设置命令文本


出于兴趣,为什么使用ODBC连接而不是OLEDB?除非我的内存不足,否则我很确定BIDS/SQL Server 2008支持OLEDB。您在SSIS中使用了什么来传递变量?或者别的什么。如果执行SQL任务?如果是这样,您可以使用表达式在SSIS中的变量中构建SQL语句,并在SQL任务中使用变量而不是输入文本。我想连接IBM Netezza并执行一个向其传递日期参数的查询。SQL任务在此不起作用您正在使用的SQL Server、visual studio和SSDT版本是什么?将检查不匹配情况。版本VS 2017(SSDT)版本15.9.4。SSIS目标版本2016和SQl Server:Microsoft SQl Server 2016(SP2-CU2)(KB4340355)-13.0.5153.0(X64)