Ticket #23 (closed task 任务: fixed)

Opened 14 years ago

Last modified 14 years ago

oracle number 类型数据库转到pg 的问题

Reported by: lisiliang Owned by: somebody
Priority: major Milestone: PG 测试计划进程
Component: component1 Version:
Keywords: Cc:
Due Date: 21/05/2012

Description

orapg 默认的针对oracle 的表定义的抽取

如果oracle 变的数值类型直接定义为number , 而不是number(10,2) 类似这种的,转为pg的建表脚本统一的变为bigint 类型了,

如果oracle 边虽然定义的是number 但是是可以写入小数部分的。

这样导致pg 端定义为bigint 在数据入库的时候会导致数据问题。

如果是通过文本转入,小数部分会自动的转为整数,例如 oracle 为1.5 到pg端就会变成2 , 导致数据失真。

如果通过oracle_fdw 等组件,从pg连接oracle 抽取数据,会导致数据类型转化失败,而导致查询失败。

目前解决方案

一个是把所有的bigint 批量替换为numeric 类型,

numeric 类型在pg端时不定长的,会导致一点额外的性能开销。

一个是ora2pg 导出建库脚本,然后开发人员,在这个基础上修改建库脚本,手工维护一下。

Change History

comment:1 Changed 14 years ago by lisiliang

  • Status changed from new to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.