我试图通过Execute Sql Task
在ssis中使用简单的select语句从表中检索Key的值。但没有运气搞清楚这个错误。
我使用了一个带字符串数据类型的输入变量,并在Execute SQL Task
中的参数映射中使用了这个变量。
执行查询“SELECT cast([Key] as Int)FROM Table where column =?“因以下错误而失败:”发生错误 将结果提取到类型的变量(DBTYPE_I4)“。可能 失败原因:查询问题,“ResultSet”属性未设置 正确,参数设置不正确,或连接未建立 正确。
注意:tinyint中Key列的数据类型
答案 0 :(得分:9)
答案 1 :(得分:1)
Tinyint不是i4,而是DT_UI1。 http://msdn.microsoft.com/en-us/library/ms345165.aspx
如果您将SSIS类型更改为byte,那么您应该能够将查询结果分配给该值。
Variable User::input Data Type Byte Value 2
Variable User::output Data Type Byte Value 0
来源查询SELECT CAST(1 AS tinyint) AS [key], ? AS foo
执行SQL任务,OLE DB CM,单行结果集 参数映射选项卡
第1列的结果映射到User :: output
执行SQL任务后检查值,结果为2(预期)
答案 2 :(得分:1)
将查询写为 - > SELECT cast([Key] as Int)作为Key FROM Table,其中column =?