用user_tab_columns獲取表結構

1.簡介
Oracle裏面,視圖SYS.USER_TAB_COLS和SYS.USER_TAB_COLUMNS都保存了當前用戶的表、視圖和Clusters中的列信息。通過檢索這兩個表,可以方便的獲取到表的結構。

利用下面這條SQL語句可以獲得當前用戶的表結構:

select * from user_tab_columns


2.妙用
可以利用Oracle的這個特性,做數據庫的升級維護工作。
比如我們要重構一張表,增加xx字段。普通的DDL語句一般都這麼寫沒問題:

alter table A add (xx varchar2(255))

然後如果我們做的好一點,還要求這個升級腳本是可以重複執行的。那怎麼辦呢?
可以寫一個pl sql,邏輯是先到user_tab_columns去查詢這張表是否有xx字段,如果沒有,就execute immediate上面這句DDL語句。否則如果已經存在就不做事了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章