問題描述:
將
Oracle
資料庫中所有使用者表的表結構匯出,並儲存到
Excel
表中,儲存資訊如所示:
SELECT A.TABLE_NAME,A.COMMENTS,B.COLUMN_NAME,B.COMMENTS FROM USER_TAB_COMMENTS a,USER_COL_COMMENTS b WHERE a.table_name = b.table_name
解決方案:
1)
啟動
PL/SQL
,應用需要匯出表結構的使用者登入目標資料庫執行個體
2)
New-SQL
window
建立查詢時段
3)
在查詢時段中輸入以下查詢語句:
select t.TABLE_NAME
表名
,t.COLUMN_ID
序號
,t.COLUMN_NAME
欄位名
,t.DATA_TYPE
類型
,t. DATA_LENGTH
長度
,t.NULLABLE
是否為空白
from user_tab_columns t
其中
User_tab_columns
為目前使用者表結構資訊表。
4)
只想完成後,在查詢時段中點擊
按鈕顯示所有記錄資訊
5)
右鍵
-copy to Excel
,將查詢資訊儲存到
Excel
中
6)
通過
Excel
中開啟儲存的查詢結果資料,選擇資料
-
篩選,選擇不同的表,然後可以取出不同表的表結構
7)
如果在查詢過程中選擇特定表的表結構則執行以下語句
select t.TABLE_NAME
表名
,t.COLUMN_ID
序號
,t.COLUMN_NAME
欄位名
,t.DATA_TYPE
類型
,t. DATA_LENGTH
長度
,t.NULLABLE
是否為空白
from user_tab_columns t
where TABLE_NAME=’
表名
’
註:這裡的表名,需要查詢的表名替換,比如
User
表則寫成:
where TABLE_NAME=’User’
經驗總結:
1)
資料表
User_tab_columns
中儲存了目前使用者所有資料表的表結構。
2)
資料表
all_tab_columns
中儲存了當前資料庫執行個體中所有資料表的表結構。
3)
資料表
all_tab_columns
和資料表
user_tab_columns
的區別在於表
all_tab_columns
多了一個
owner
欄位,用來儲存表所屬的使用者。
通過
PL/SQL
可以將查詢結果直接匯出到
Excel
檔案中。