【发布时间】:2012-08-29 07:54:39
【问题描述】:
Product Version Oracle 10g
我在 oracle 中有一个表,里面有一些数据。有一列类型为 Number(10,0)。现在我想将其更改为 Number(10,2) 以允许小数。但要改变的是,oracle是不允许不删除现有数据的。 我知道我可以进行数据备份-> 删除数据-> 更改类型-> 插入数据。 但问题是有一个从序列中获取值的自动插入列。 因此,当我将其插入回去时,这些 id 会改变....我不确定是否有人使用该 id 作为获取数据的键。那么如何在不更改 ID 的情况下更改它..
请帮忙..
【问题讨论】:
-
可能你想要数字(12,2)。例如,number(7,2) 是一个小数点前 5 位和小数点后 2 位的数字。
-
您可以禁用触发器。 “更改触发器 x 禁用”。
-
@FlorinGhita 我需要 (12,2) ...谢谢指出...将尝试禁用触发器 -> 插入数据 -> 启用触发器
-
您仍然使用
number(12,2)获得ORA-01440 吗?我不在 11g 中,但可能取决于我认为存在的数据。 -
@AlexPoole No...Number(12,2) 没有任何问题......当你减少它时,只会出现那个错误