【发布时间】:2019-11-17 15:48:55
【问题描述】:
我在 dblink 的帮助下将数据从 oracle 表移动到 Postgres,并且在 Postgres 的新表结构中,我为 Oracle 中没有精度的数字列添加了精度,现在在移动数据时我能够截断十进制值以匹配比例,但是,如果它与精度不匹配,我正在努力寻找一种方法来截断小数点之前的值。
调整比例我使用以下命令:
insert into Postgres.test
select id, width::numeric(7,3)
from oracle.test;
因此,在这种情况下,如果小数点后的值大于 3 位,它会将其截断为 3 位,但是,如果精度(小数点前)大于 4,我希望它也应该得到截断为 4 位,我不介意这样做会改变几行的值。
【问题讨论】:
-
我不清楚你想要达到什么目的。如果原始值是例如
12345.678该操作的结果应该是什么? -
在这种情况下,如果值为 12345.678,那么我希望它是 1234.567 或 1234.678,这两个值都适合我
-
这对我来说毫无意义。我同意 Laurenz 的观点,将这些值设置为
null更有意义。
标签: postgresql oracle-fdw