人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Oracleデータベースで、2つのテーブルのデータ内容が完全に同一かどうかを調べる簡単な方法はないでしょうか?現在それぞれのテーブルデータをテキストファイルに出力し出力した2つのファイルをfcもしくはdiffコマンドで比較していますが、テーブル数、データ量も多いため、もっと簡単な方法がないかどうかを知りたいです。このような機能を持つソフトウェアの紹介や考え方のヒントなど、幅広い情報をお待ちしています。

●質問者: fuji-z
●カテゴリ:ウェブ制作
✍キーワード:diff Fc Oracle コマンド ソフトウェア
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● くいっぱ
●40ポイント

http://tsubosak.hp.infoseek.co.jp/1-10/3-select.html

集合演算子 UNION と UNION ALL について

ぅぉ。入力形式が変わっててビックリした!

って事で、思いつきなので忘れないうちに。

union で二つのテーブルからもってきたレコードのカウントを調べてみてはどうですか?

内容が異なってれば、2件になるはず。

テーブル数次第では偉いこっちゃになりますが・・・。

◎質問者からの返答

ありがとうございます。

試してみますがUNIONだとテーブル数が多いので大変そうです。


2 ● ohmix1
●70ポイント

http://www.vector.co.jp/soft/winnt/business/se300007.html?g

Vector:データーベースコンペア (WindowsNT/2000/XP/Vista / ビジネス) - ソフトの詳細

上記回答のように、SQLで何とかするのか簡易であると思いますが、DBコンペアというソフトがあるみたいです。(参考URL)

また、以下のSQLでもできした。(念のため確認願います)

1. 比較する2つのテーブルの行数を比較

-->レコード数が異なれば一致していない

2. 同じならTABLE1からTABLE2にあるレコードと同じものを削除(MINUS)する

-->結果が1レコード以上なら一致していない

SELECT ’TRUE’ FROM DUAL

WHERE (SELECT COUNT(*) FROM TABLE1) = (SELECT COUNT(*) FROM TABLE2)

AND NOT EXISTS (SELECT * FROM TABLE1 MINUS SELECT * FROM TABLE2)

まったく同じならTRUEが出力されます。

ただし、同一テーブルにまったく同じレコードがあった場合にどうなるかは未確認です。

◎質問者からの返答

ありがとうございます。とりあえず教えていただいたツールを試してみたいと思います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ