SSIS使用ODBC PostgreSQL查询结果给变量赋值报错求助
SSIS Execute SQL Task 连接ODBC PostgreSQL赋值变量报错解决方案
ODBC驱动在SSIS中的结果集映射规则和OLE DB完全不同,不支持列名映射,仅支持按列的顺序序号映射,序号从0开始计数,这是本次报错的核心原因
具体解决步骤:
- 首先确认Execute SQL Task的基础配置:
ConnectionType属性设置为ODBC,使用PostgreSQL官方最新稳定版ODBC驱动,避免驱动本身的类型映射bugResultSet属性选择Single row(单行结果集)
- 调整结果集映射配置:
- 打开任务的
结果集配置页,删除原有按列名Id配置的映射项 - 新增映射项,
结果名称字段填写0(代表查询结果的第一列),变量选择目标变量User::var_activity_id
- 打开任务的
- 匹配数据类型避免转换异常:
- 确认SSIS变量
var_activity_id的类型设置为Int32,不要使用短整型避免范围溢出 - 调整查询语句做显式类型转换,修改为:
SELECT CAST(floor(random() * 10 + 1) AS INTEGER) as Id; - 确认SSIS变量
内容的提问来源于stack exchange,提问作者HaBo
相关产品推荐
相关产品推荐

