ショコラ
Oracle 2つのデータベースにあるテーブルのカラムの差を確認するには?
2つのデータベースがあります。
そこには同じテーブルが存在するのですが、どちらかのデータベースのテーブルが多かったり、alter table などで一部カラムが変更されています。
さて、この差分をどうやって調べようか?という状況です。
この場合の対応方法は、
①2つのデータベースのテーブル情報を取得しファイルに保存する。
②WinMerge等でファイルを比較する。
でキメマス。ノープログラム。
もっさん先輩
2つのデータベースで↓下のSQLを実行し、テーブル情報をファイルに保存します。
SELECT
table_name,
column_name,
data_type,
data_length
FROM
user_tab_columns
ORDER BY
table_name,column_name
あとは WinMerge でファイルを比較してみましょう。
他にも「あるカラムを含むテーブルを探す」ことにも使えますね。
SELECT
table_name,
column_name,
data_type,
data_length
FROM
user_tab_columns
where column_name='NAME'
ORDER BY
table_name,column_name
↑例えば、NAMEカラムを持つテーブルを一覧表示する。とかです。
以上