Oracle獲取表的所有列名

2021-10-25 10:17:33 字數 714 閱讀 9217

想用insert into將乙個表的資料匯入另乙個表,但兩個表的列並不一樣,後乙個錶比前者少幾個,相同部分的名稱是一樣的,所以想直接獲得目標表的所有列名,然後再從源表中匯出這些列的資料insert。要獲得乙個表的所有列名,oracle有幾個sys下的檢視可以做到:

all_tab_comments

user_tab_comments

all_col_comments

user_col_comments

all_tab_columns

user_tab_columns

all開頭的是全部使用者,user是當前使用者,具體區別去看檢視的指令碼吧,user_col_comments所包含的內容比user_tab_columns少,只有三個字段,而user_tab_comments更豐富些。但它們都能列出表的所有列名,不過還是有些區別的,比如user_col_comments不包含欄位的序號,所以用它查出的列並不按照原表的排列順序,如果按原表列順序,可以用user_tab_columns,order by column_id就可以實現,如

select column_name  from user_tab_columns  where table_name='表名' order by column_id

注意要查詢的表名必須大寫。如果還想讓查出的列名轉置成行資料,可以用wmsys.wm_concat,所有列資料變成一行,以逗號分隔。

oracle獲取表的列名,主鍵

select from user tab columns where table name 表名 字母大寫 查詢某個表中的欄位名稱 型別 精度 長度 是否為空 select column name,data type,data precision,data scale,nullable from u...

檢視Oracle使用者下所有表名,列名

select from all tab comments 查詢所有使用者的表,檢視等。select from user tab comments 查詢本使用者的表,檢視等。select from all col comments 查詢所有使用者的表的列名和注釋。select from user co...

讀取庫中的所有表名 列名

讀取庫中的所有表名 select name from sysobjects where xtype u 讀取指定表的所有列名 select name from syscolumns where id select max id from sysobjects where xtype u and na...