Oracle 修改現有列的資料型別

2022-01-29 11:07:44 字數 643 閱讀 3813

如果表中有資料,oracle是不能修改其資料型別的。但可以通過新建乙個臨時列,將要修改列的資料複製到臨時列中,刪除原列再修改臨時列的名字。這樣說好像有點拗口,分步解說一下。

表ac_reg中有列:is_active,原來是字元型別的,目標是將它改為數值型別

--

-目標將is_active改為數值型

--新增一列

alter

table ac_reg add is_active_temp number(1

);--

將is_active的值,賦給is_active_temp

update ac_reg set is_active_temp =

cast(is_active as

number(1

));--

刪除原來的列

alter

table ac_reg drop

column

is_active;

--修改名稱

alter

table ac_reg rename column is_active_temp to is_active;

blob轉varchar2

utl_raw.cast_to_varchar2(blob_)

oracle修改表增加列刪除列修改列

tag oracle修改表 sql增加列 sql刪除列 sql修改列 1.增加列 alter table table name add column datatype default expr column datatype.例如 sql alter table emp01 add eno numb...

oracle修改表增加列刪除列修改列

oracle修改表 sql增加列 sql刪除列 sql修改列 1.增加列 alter table table name add column datatype default expr column datatype.例如 sql alter table emp01 add eno number 4...

Oracle 如何修改列的資料型別

問題 表a有資料,想修改其中有一列a1為varchar2 10 型 原來為number型 當時開始執行sql alter table a modify a1 varchar2 10 結果報錯了 sql alter table a modify a1 varchar2 10 alter table a...