oracle 修改欄位型別的方法
今天公司因為業務需要,修要修改某個欄位資料型別有number(5),變為number(5,2)型
要是沒有資料的話直接用以下語句即可
alter table tb_test modify permile number(5,2);
但是有資料的話 就不能用上面方法了,
alter table tb_test add permile_temp number(5,2)
update tb_test set permile_temp=permile;
alter table drop column permile;
alter table test rename column permile_temp to permile;
這種方法會使列名發生變化,而且欄位順序增加 有可能發生行遷移,對應用程式會產生影響
以下方法是比較好的方法
不用使列名發生變化 也不會發生表遷移,但這個有個缺點是表要更新兩次
如果資料量較大的話 產生的undo和redo更多 ,前提也是要停機做
要是不停機的話 ,也可以採用線上重定義方式來做
以下是指令碼:
alter table tb_test add permile_temp number;
-- Add/modify columns
alter table tb_test modify PERMILE null;
update tb_test set permile_temp=permile,permile=null;
commit;
alter table tb_test modify permile number(5,2);
update tb_test set permile=permile_temp,permile_temp=null;
commit;
alter table tb_test drop column permile_temp;
alter table tb_test modify PERMILE not null;
select * from tb_test ;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7199859/viewspace-331197/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 修改欄位型別和長度Oracle型別
- sql語句修改欄位型別和增加欄位SQL型別
- oracle 修改表欄位的長度Oracle
- ORANCLE 資料已存在,修改欄位型別長度型別
- MongoDB更改欄位型別MongoDB型別
- Oracle-批量修改欄位裡面的值Oracle
- MySQL欄位新增註釋,但不改變欄位的型別MySql型別
- ES Mapping ,1 欄位型別APP型別
- MySQL欄位型別最全解析MySql型別
- [提問交流]建立模型,新增屬性,欄位型別如何設定2位小數的欄位型別模型型別
- Oracle 增加修改刪除欄位與新增註釋Oracle
- 聯機重定義修改欄位型別(NVARCHAR2->VARCHAR2)型別
- 【mongo】mongo 欄位型別互轉Go型別
- JSON欄位型別在ORM中的使用JSON型別ORM
- MySQL中TEXT與BLOB欄位型別的區別MySql型別
- SQL字元型欄位按數字型欄位排序實現方法SQL字元排序
- 多型關聯自定義的型別欄位的處理多型型別
- mysql表操作(alter)/mysql欄位型別MySql型別
- Oracle-欄位的新增Oracle
- PHP 操作 mysql blob 資料型別的欄位PHPMySql資料型別
- sql小筆記(增刪改查——新增列、修改表名、列的欄位型別等)SQL筆記型別
- 欄位管理,為什麼只有新增的時候才自動匹配欄位型別型別
- 關於mysql中欄位定義的型別int、tinyint區別MySql型別
- MYSQL SET型別欄位的SQL操作知識介紹MySql型別
- SAP WM中階儲存型別裡的Full stk rmvl 欄位和Return Storage type欄位型別
- SqlSugar code first 欄位為列舉型別,預設生成資料庫欄位為bigint如何設定為int型別SqlSugar型別資料庫
- Oracle表 列欄位的增加、刪除、修改以及重新命名操作sqlOracleSQL
- Java資料型別與資料庫欄位型別對應關係Java資料型別資料庫
- Oracle 計算欄位選擇性 判別列的索引潛力Oracle索引
- MySQL VARCHAR型別欄位到底可以定義多長MySql型別
- mssql sqlserver 可以儲存二進位制資料的欄位型別詳解SQLServer型別
- es 更新指定欄位的方法
- ORACLE LOB大欄位維護Oracle
- oracle fga審計(欄位級)Oracle
- 查詢mysql某張表中的所有資料(欄位)型別MySql型別
- 支援 enum 型別的欄位允許為空插入資料庫型別資料庫
- 資料庫中欄位資料型別以及約束資料庫資料型別
- 欄位修改記錄操作日誌的實現
- Oracle 11G DBMS_REDEFINITION修改表資料型別Oracle資料型別