Oracle表中已有數據修改字段類型方式
Oracle表中已有數據修改字段類型
Oracle的表中已存在了數據,這時再來修改表的字段類型就無法修改。
例如:
number類型改成number(22),這時數據庫會報
ORA-01440: column to be modified must be empty to decrease precision or scale
推薦使用方法1,方法2如果字段不能為空就無法使用
方法1
備份原表數據,清除表數據,修改字段類型,還原數據
-- 1.創(chuàng)建備份表 create table test_bak as select * from test; -- 2.清除原表數據 truncate table test; -- 3.修改字段類型 alter table test modify test_id number(22); -- 4.還原數據 insert into test select * from test_bak; commit;
方法2
只備份需要修改的字段的數據,可以在原表上新增備份字段,也可以新建一張表備份字段數據
-- 1.新增字段 alter table test add test_id_bak number; -- 2.復制數據 update test set test_id_bak = test_id; commit; -- 3.清除字段數據并修改字段類型 update test set test_id = null; commit; -- 4. 修改字段類型 alter table test modify test_id number(22); -- 5.還原數據 update test set test_id=test_id_bak; commit; -- 6.刪除臨時字段 alter table test drop column test_id_bak;
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
PLSQL Developer連接Oracle11g 64位數據庫配置詳解(圖文)
這篇文章主要介紹了PLSQL Developer連接Oracle11g 64位數據庫配置詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09Orcale 數據庫客戶端PL/SQL 中文亂碼的問題解決方法
這篇文章主要介紹了Orcale 數據庫客戶端PL/SQL 中文亂碼的問題解決方法,需要的朋友可以參考下2014-05-05Oracle Session每日統(tǒng)計功能實現(xiàn)
客戶最近有這樣的需求,想通過統(tǒng)計Oracle數據庫活躍會話數,并記錄在案,利用比對歷史的活躍會話的方式,實現(xiàn)對系統(tǒng)整體用戶并發(fā)量有大概的預估,本文給大家分享具體實現(xiàn)方法,感興趣的朋友一起看看吧2022-02-02通過PLSQL Developer創(chuàng)建Database link,DBMS_Job,Procedure,實現(xiàn)Oracle
這篇文章主要介紹了通過PLSQL Developer創(chuàng)建Database link,DBMS_Job,Procedure,實現(xiàn)Oracle跨庫傳輸數據,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07Windows10 x64安裝、配置Oracle 11g過程記錄(圖文教程)
這篇文章主要介紹了Windows10 x64安裝、配置Oracle 11g過程記錄(圖文教程),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03