1. 程式人生 > >調整Oracles表內欄位的順序

調整Oracles表內欄位的順序

 工作中遇到:在為一個表新增欄位後,新增欄位在最後,想調整新增欄位的位置。

  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#,name
        
from sys.col$ where obj#=73626;

        結果如下圖所示:

  

      [4] 第二列便是欄位的序號,就可以用update語句來任意調整欄位的順序了。