Ticket #23 (closed task 任务: fixed)
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
Note: See
TracTickets for help on using
tickets.
![(please configure the [header_logo] section in trac.ini)](http://www1.pconline.com.cn/hr/2009/global/images/logo.gif)