sql - 将 SSIS 参数传递给 OPENQUERY
问题描述
请帮助我将 SSIS 中的参数传递到“OPENQUERY”中,以测试我正在使用下面的脚本但出现错误的查询:
脚本:
DECLARE @TSQL varchar(8000), @Date varchar(11)
SELECT @Date = '28 Nov 2018'
SELECT @TSQL = 'SELECT * FROM OPENQUERY([TEST], ''SELECT * FROM PUB.TEST
WHERE Test_Date >= ''''' + @Date + ''''''')'
EXEC (@TSQL)
错误:
OLE DB provider "MSDASQL" for linked server "TEST" returned message "[DataDirect][ODBC Progress OpenEdge Wire Protocol driver][OPENEDGE]Invalid date string (7497)".
Msg 7321, Level 16, State 2, Line 4
An error occurred while preparing the query "SELECT * FROM PUB.TEST
WHERE Test_Date >= '28 Nov 2018'" for execution against OLE DB provider "MSDASQL" for linked server "TEST".
SSIS OLE DB 源中的脚本应如下所示:
DECLARE @TSQL varchar(8000), @Date varchar(11)
SELECT @Date = ?
SELECT @TSQL = 'SELECT * FROM OPENQUERY([TEST], ''SELECT * FROM PUB.TEST
WHERE Test_Date >= ''''' + @Date + ''''''')'
EXEC (@TSQL)
解决方案
将脚本修改为下面,问题出在日期格式上
DECLARE @TSQL varchar(8000), @Date varchar(11)
SELECT @Date = '28-Nov-2018'
SELECT @TSQL = 'SELECT * FROM OPENQUERY([TEST], ''SELECT * FROM PUB.TEST
WHERE Test_Date >= ''''' + @Date + ''''''')'
EXEC (@TSQL)
推荐阅读
- android - Kotlin 如何在 EditText Android Studio 中找到确切的单词
- sas - 在 SAS 的数据步骤中,如何获取以字符串形式表示的列名称的列的值?
- postgresql - 使用 postgres 构建远程后端
- java - 在运行时如何在多模块 gradle 项目中设置类路径?
- .net - 使用 NDepend 的程序集列表的 [Obsolete] 标记代码查找代码
- sql - 如何在 SQL 触发器中访问完整的旧数据
- css - 添加 CSS 以响应组件
- reactjs - React Hook,如何可控地将数组设置为对象列表
- plot - 以较高的频率绘制正弦波
- artifactory - Artifactory:无法初始化应用程序:无效的DNS名称:maven.domain.org:-1