将 SSIS 参数传递给 OPENQUERY
Pass SSIS parameter into 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)
我需要帮助将 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)