ORACLE資料庫對比表結構

2021-09-23 21:00:20 字數 2371 閱讀 8017

有時候會有某種需求:需要對比兩個表的表結構是否一致,有時候甚至是整個資料庫所有表的表結構對比......。表結構對比無非就是欄位名、字段型別、字段資料型別、以及欄位的順序的對比。如果需要對比表結構,可以通過下面簡單的指令碼實現:

select m.owner
,m.table_name
,m.column_id
,m.column_name
,m.data_type
,m.data_length
,n.owner
,n.table_name
,n.column_id
,n.column_name
,n.data_type
,n.data_length
from
(
select owner
,table_name
,column_id
,column_name
,data_type
,data_length
from dba_tab_columns
where owner=&owner_a
and table_name=&table_name_a
) m left

join

(
select owner
,table_name
,column_id
,column_name
,data_type
,data_length
from dba_tab_columns
where owner=&owner_b
and table_name=&table_name_b
) n on  m.column_id =n.column_id
and m.column_name = n.column_name
and m.data_type = n.data_type
and m.data_length= n.data_length
order

by m.table_name, m.column_id;

但是如果a表與b表前面的字段一致,然而b表有一些額外的字段,那麼上 面的sql(左連線)就會查不出兩者之間結構的不同。此時需要使用右連線才能對比出真正的表結構。所以如果需要對比兩者的表結構是否一致,最好左連線查一 次,右連線查一次。才能真正的確認兩者的表結構的異同。

select m.owner
,m.table_name
,m.column_id
,m.column_name
,m.data_type
,m.data_length
,n.owner
,n.table_name
,n.column_id
,n.column_name
,n.data_type
,n.data_length
from
(
select owner
,table_name
,column_id
,column_name
,data_type
,data_length
from dba_tab_columns
where owner=&owner_a
and table_name=&table_name_a
) m right

join

(
select owner
,table_name
,column_id
,column_name
,data_type
,data_length
from dba_tab_columns
where owner=&owner_b
and table_name=&table_name_b
) n on  m.column_id =n.column_id
and m.column_name = n.column_name
and m.data_type = n.data_type
and m.data_length= n.data_length
order

by m.table_name, m.column_id;

ORACLE資料庫對比表結構

有時候會有某種需求 需要對比兩個表的表結構是否一致,有時候甚至是整個資料庫所有表的表結構對比.表結構對比無非就是欄位名 字段型別 字段資料型別 以及欄位的順序的對比。如果需要對比表結構,可以通過下面簡單的指令碼實現 m.table name,m.column id,m.column name,m.d...

oracle資料庫表結構匯出

今天有同事打 要求要把oracle庫里的一張表的定義匯出個sql檔案,當時的第一反應就是要教他用exp imp來獲得表結構定義檔案,在 裡面說了半天還是沒能教會他,只好跑了一趟機房。路上就在想,oracle真是討厭,為什麼不在企業管理器裡直接加上個表結構匯出的選項,還要害我這麼跑一趟,真是 問了下要...

oracle 資料庫表結構查詢

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