Oracle應用之修改表字段型別

2021-08-29 01:40:25 字數 745 閱讀 9188

mysql對於有資料和沒資料的表字段型別都可以隨意修改,不過oracle就不一樣。

假如表a有個字段a,本來為number型別,然後我們想修改為varchar2型別。

(1)欄位a沒資料的情況,改為varchar2(10),可以如下:

alter table a modify (a varchar2(10));
(2)欄位有資料的情況,執行上面sql會提示

「ora-01439:要更改資料型別,則要修改的列必須為空」

這時,我們可以換種思路來修改,思路是這樣的:先建立乙個臨時的字段,進行資料備份

新增乙個varchar2型別的臨時字段

alter table a add new_temp varchar2(10);

備份一下欄位a

update a set new_temp = a;

事務提交

commit;

清空欄位a資料

update a set a = '';

事務提交

commit;

這時a欄位是沒資料的

alter table a modify a varchar2(10);

將臨時欄位的資料搬過來

update a set a = new_temp;

事務提交

commit;

drop一下臨時字段

oracle修改表字段

增加字段 alter table docdsp add dspcode char 200 刪除字段 alter table table name drop column column name 修改字段型別 alter table table name alter column column nam...

oracle之修改表字段的sql

用慣了pl sql開發,那些基礎的sql語句都忘記不少了。比如這個修改表字段 alter table patrol lines powercut modify powercut cause varchar2 400 task planning varchar2 400 powercut desc v...

Oracle修改表字段以及表型別

win7 oracle pl sql 一張表 lyz emp 建立表lyz emp create table lyz emp e id number 10 not null e oldname varchar2 2 not null primary key e id 測試表lyz emp是否建立成功...