更改oracle中的数据类型而不删除数据

时间:2012-08-29 07:54:39

标签: oracle oracle10g

Product Version Oracle 10g

我在oracle中有一个表,里面有一些数据。有一个类型为Number(10,0)的列。现在我想将其更改为数字(10,2)以允许小数。但要改变,oracle不允许不删除现有数据。 我知道我可以进行数据备份 - >删除数据 - >改变类型 - >插回数据。 但问题是有一个自动插入列从序列中获取值。 因此当我插入它时,这些id将会改变....我不确定是否有人使用该id作为获取数据的密钥。那么如何在不改变ID的情况下改变它呢。

请帮助..

2 个答案:

答案 0 :(得分:5)

  1. 添加新的NUMBER(12,2)列,但名称不同。
  2. 更新新列,转换旧列中的所有值。
  3. 放下旧栏。
  4. 使用所需名称重命名新列。

答案 1 :(得分:3)

可能你想要数字(12,2)来保持精确度。 例如,数字(7,2)是一个在小数点前有5位数字,在小数点后面有2位数字的数字。

或者,您可以禁用触发器/执行工作/启用触发器。