プロが教えるわが家の防犯対策術!

まったく同じジョブの内容でスケジューリング方法を変えて実行した時、その前後でDBの内容が同一であるか検証する方法を考えています。

DBはoracle9、テーブル数は約100強、エクスポートすると約500MBです。

検証方法は、処理前に本番データをエクスポートし、それを検証環境にインポート、検証環境でスケジュールを実行して、まったく同じ結果を得られるかを検証します。

以下の案を思いつきましたが、イマイチぴんときません。何かいい方法を教えてください。

案1 DBをDBリンクで接続し、オブジェクトブラウザのオブジェクト比較機能を使う。
→簡単にできるが、結果を得るの時間がかかりすぎる。

案2 DBをDBリンクで接続し、検証用プロシージャを作成して比較する。
→user_tables, user_tab_columnsなどを使うプロシージャの作成が面倒。

案3 処理実行後に、本番と検証環境でそれぞれテーブルごとにエクスポートし、エクスポートファイルをUNIXでソートした上で、uniqコマンドで比較する。
→これが現実的?

A 回答 (1件)

案3のエクスポートは、オラクルのエクスポート形式だと、


バイナリ形式(独自フォーマット)ですので、ソートができません。

CSVなどのテキスト形式で抜き出す必要があります。
その際、ORDER指定すれば、抜き出した後にソートの手間は
割愛できると思います。
    • good
    • 0
この回答へのお礼

結局、回答を拝見する前に、テキスト形式で出力するストアドプロシージャを作成しました。

おっさるとおりソートできませんでしたので、面倒でしたがそうするしか方法がなく。

お礼日時:2006/09/08 12:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す