2012-08-29 79 views
2
Product Version Oracle 10g 

我在oracle中有一個表,其中包含一些數據。有一個Number(10,0)類型的列。現在我想將其更改爲數字(10,2)以允許小數。但要改變,oracle不允許刪除現有數據。 我知道我可以採取數據備份 - >刪除數據 - >改變類型 - >插入數據回來。 但問題是有一個自動插入列從序列中獲取值。 所以,當我插回來那些id會改變....我不知道,如果任何人使用該ID作爲密鑰來獲取數據。那麼,如何可以改變它,而不會改變的ID ..在oracle中更改數據類型而不刪除數據

請幫助..

+4

可能你想要號碼(12,2)。例如,數字(7,2)是一個小數點前有5位數字和小數點後兩位數字的數字。 –

+0

你可以禁用觸發器。 「改變觸發器x禁用」。 –

+0

@FlorinGhita我需要(12,2)... thnks指出...將嘗試禁用觸發器 - >插入數據 - >啓用觸發器 – Andromeda

回答

3

也許你希望號(12,2),以保持精度。 例如,數字(7,2)是一個小數點前有5位數字和小數點後兩位數字的數字。

或者,您可以禁用觸發器/執行工作/啓用觸發器。

5
  1. 添加新的NUMBER(12,2)列,但名稱不同。
  2. 更新新列,轉換舊列中的所有值。
  3. 丟棄舊列。
  4. 用所需的名稱重新命名新列。