調整Oracles表內欄位的順序
阿新 • • 發佈:2019-02-02
工作中遇到:在為一個表新增欄位後,新增欄位在最後,想調整新增欄位的位置。
1、原始方法:
--新建臨時表以儲存正確的順序 create table A_2 as select (column1,colum2,……A表中的順序) from A_1 ; --刪除表A_1 drop table A_1; --新建A_1並從A_2表中賦予其正確的順序和值 create table A_1 as select * from A_2; --刪除臨時表A_2 drop table A_2;
這種方法對欄位較少的表來說還不會顯得太麻煩,但是對於欄位較多的表來說就吃力了。
2、利用系統資料庫
[1] 首先,以sys使用者的身份登入PL/SQL
[2] 查詢出你要更改的表的ID,以我本地的資料為例,我要改'FINACE'使用者下'INCOME'這張表。注:ORACLE中的表要用大寫。
select object_id from all_objects where owner = 'FINACE' and object_name = 'INCOME' ;
得到INCOME這張表的i,如圖所示:
[3] 根據id去查詢該表中的欄位以及欄位序號
select obj#,col#,namefrom sys.col$ where obj#=73626;
結果如下圖所示:
[4] 第二列便是欄位的序號,就可以用update語句來任意調整欄位的順序了。