使用输出参数时执行 SQL 任务时出错
Error with execute SQL task when using output parameter
我想从 SQL 服务器 table 检索最新日期。
在“执行 SQL 任务”中,我有以下 SQL 语句:
SELECT ? = MAX(MYDATE) --SQL data type of this column is datetime
FROM TBLLOG
WHERE COMPLETED = 1
在参数映射部分我添加了 1 个输出参数:
- 变量名:
User:var_testdt
(注意:这是日期时间类型)
- 方向:输出
- 日期类型:日期
- 参数名称:0
- 参数大小:-1
“执行 SQL”任务中的 ResultSet
属性 设置为 None。
我在执行包时遇到这个错误:
... failed with the following error:
Error HRESULT E_FAIL has been returned from a call to a COM component.
Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
你应该做如下的事情:
DECLARE @ExString NVARCHAR(500)
SET @ExString = N'SELECT MAX([MYDATE]) AS MaxOfDate FROM TBLLOG
WHERE COMPLETED = 1 '
EXECUTE(@ExString)
这是一个数据类型问题。
基于SQL Server official documentation,SSIS中的DT_DBTIMESTAMP
数据类型映射到SQL服务器中的datetime
和smalldatetime
数据类型。而 DT_DATE
未映射到任何数据类型。
要解决此问题,只需将输出参数的数据类型从DATE
更改为DBTIMESTAMP
。此外,确保 User:var_testdt
变量也是 DateTime
.
我想从 SQL 服务器 table 检索最新日期。
在“执行 SQL 任务”中,我有以下 SQL 语句:
SELECT ? = MAX(MYDATE) --SQL data type of this column is datetime
FROM TBLLOG
WHERE COMPLETED = 1
在参数映射部分我添加了 1 个输出参数:
- 变量名:
User:var_testdt
(注意:这是日期时间类型) - 方向:输出
- 日期类型:日期
- 参数名称:0
- 参数大小:-1
“执行 SQL”任务中的 ResultSet
属性 设置为 None。
我在执行包时遇到这个错误:
... failed with the following error:
Error HRESULT E_FAIL has been returned from a call to a COM component.
Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
你应该做如下的事情:
DECLARE @ExString NVARCHAR(500)
SET @ExString = N'SELECT MAX([MYDATE]) AS MaxOfDate FROM TBLLOG
WHERE COMPLETED = 1 '
EXECUTE(@ExString)
这是一个数据类型问题。
基于SQL Server official documentation,SSIS中的DT_DBTIMESTAMP
数据类型映射到SQL服务器中的datetime
和smalldatetime
数据类型。而 DT_DATE
未映射到任何数据类型。
要解决此问题,只需将输出参数的数据类型从DATE
更改为DBTIMESTAMP
。此外,确保 User:var_testdt
变量也是 DateTime
.