Oracle表中已有數(shù)據(jù)修改字段類型方式
Oracle表中已有數(shù)據(jù)修改字段類型
Oracle的表中已存在了數(shù)據(jù),這時(shí)再來修改表的字段類型就無法修改。
例如:
number類型改成number(22),這時(shí)數(shù)據(jù)庫會(huì)報(bào)
ORA-01440: column to be modified must be empty to decrease precision or scale
推薦使用方法1,方法2如果字段不能為空就無法使用
方法1
備份原表數(shù)據(jù),清除表數(shù)據(jù),修改字段類型,還原數(shù)據(jù)
-- 1.創(chuàng)建備份表 create table test_bak as select * from test; -- 2.清除原表數(shù)據(jù) truncate table test; -- 3.修改字段類型 alter table test modify test_id number(22); -- 4.還原數(shù)據(jù) insert into test select * from test_bak; commit;
方法2
只備份需要修改的字段的數(shù)據(jù),可以在原表上新增備份字段,也可以新建一張表備份字段數(shù)據(jù)
-- 1.新增字段 alter table test add test_id_bak number; -- 2.復(fù)制數(shù)據(jù) update test set test_id_bak = test_id; commit; -- 3.清除字段數(shù)據(jù)并修改字段類型 update test set test_id = null; commit; -- 4. 修改字段類型 alter table test modify test_id number(22); -- 5.還原數(shù)據(jù) update test set test_id=test_id_bak; commit; -- 6.刪除臨時(shí)字段 alter table test drop column test_id_bak;
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
DBF 文件恢復(fù) ORACLE 數(shù)據(jù)庫的方法
這篇文章主要介紹了DBF 文件 ORACLE 數(shù)據(jù)庫恢復(fù)的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
Oracle Arraysize設(shè)置對于邏輯讀的影響實(shí)例分析
這篇文章主要介紹了Oracle Arraysize設(shè)置對于邏輯讀的影響實(shí)例分析,通過設(shè)置Arraysize大幅減少了邏輯讀的次數(shù)和網(wǎng)絡(luò)往返次數(shù),需要的朋友可以參考下2014-07-07
ORACLE SQL語句優(yōu)化技術(shù)要點(diǎn)解析
這篇文章主要介紹了ORACLE SQL語句優(yōu)化技術(shù)的相關(guān)內(nèi)容,小編覺得挺不錯(cuò)的,在這里分享給大家,需要的朋友可以參考下。2017-10-10
PLSQL客戶端連接Oracle數(shù)據(jù)庫配置詳細(xì)教程
這篇文章主要介紹了如何安裝和配置Oracle客戶端,包括安裝步驟、配置環(huán)境變量、查看和編輯tnsnames.ora文件以及如何連接Oracle數(shù)據(jù)庫,需要的朋友可以參考下2025-02-02
ORA-02298: 無法驗(yàn)證 (約束)提示未找到父項(xiàng)關(guān)鍵字的解決辦法
這篇文章主要介紹了ORA-02298: 無法驗(yàn)證 (約束)提示未找到父項(xiàng)關(guān)鍵字的解決辦法,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09

