2
Product Version Oracle 10g

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

请帮忙..

4

2 回答 2

5
  1. 添加新的 NUMBER(12,2) 列,但名称不同。
  2. 更新新列,转换旧列中的所有值。
  3. 删除旧列。
  4. 用所需的名称重命名新列。
于 2012-08-30T03:38:16.753 回答
3

可能您希望 number(12,2) 保持精度。例如,number(7,2) 是一个小数点前 5 位和小数点后 2 位的数字。

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

于 2012-08-29T08:33:54.480 回答