0

我有一个查询,它根据 Vertica 中使用的 START DATE 和 END DATA 参数提取一组数据。

这是 vertica 查询中的过滤器:

其中 list.transaction_date 在 :start_date 和 :end_date 之间

我如何在 SSIS ODBC 连接的“SQL 命令文本:”框中处理这个问题?

4

1 回答 1

0

使用 ODBC 驱动程序,您可以指示参数?是基于 1 的序数系统https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2012/ms140355(v=sql.110 )

你的文件管理器会变成类似

where list.transaction_date between ? and ?

然后在 Execute SQL Task 的 Parameter 选项卡中或单击 ODBC Source 中的 Parameter 按钮并将参数名称 1 连接到 @[User::MyStartDate] 并将参数名称 2 连接到 @[User::MyEndDate]

这假定您有两个名为 MyStartDate 和 MyEndDate 的 SSIS 变量。6.4 万美元的问题是:那应该是什么数据类型?我不知道。最佳情况下,您可以在 SSIS 中使用 Date/Datetime 数据类型,而 ODBC 驱动程序可以在两者之间转换格式。不太好的情况是您的变量变成了字符串,您必须将它们操作为 Vertica 的允许值。

绝对最坏的情况是您无法在工具中进行参数化,而是需要通过表达式构建动态字符串,并使用符合 Vertica 的值和语法。

于 2018-04-30T01:44:16.670 回答