0

当社のクライアントは SQLServer/Oracle データベースを使用しています。何年にもわたって、手動で実行する必要のある多くの更新スクリプトを送信してきました。ほとんどの場合、すべてがスムーズに進みましたが、スクリプトが最後まで完全に実行されなかったり、エラーが発生したりすることがあります (アップグレード時には検出されませんでした)。また、何らかの理由で、「賢いユーザー」でさえ、それらのデータベース自体にインデックス/テーブルを追加することもありました。後で、これらの不規則性が問題につながります。

今、私はクライアントのデータベースを独自のデータベース スキーマ (テーブル、データ型、インデックス、ビューなど) に対して検証/検証する方法を見つけることを任されています。出力は、データベースに何が欠けているか、または何があってはならないかを示す何らかの種類の差分ファイルである必要があります。アプリケーション内からコード (C++) でこれを行うことも、この 1 つの目的のためだけに外部ツールを作成することもできます。

コーディングを開始する前に、必要な結果を生成するツール、または少なくともマスター データベース (Oracle および SQLServer) から適切な xml ファイルを生成するのに役立つツールが既に存在するかどうかを尋ねたいと思いました。または、独自のツールを作成するのに役立つライブラリはありますか?

4

6 に答える 6

3

以前にこの手法を使用したことがありますが、ツールを購入する必要はありません。

Enterprise Manager には「スクリプトの作成」機能があります。参照データベースと比較データベースでこれを実行します。関心のあるオブジェクトのスクリプトを生成するための適切なオプションを選択します。次に、生成された 2 つのファイルをお気に入りの diff ツールで比較します。

DDL スクリプトをエクスポートできる Oracle ツールを使用して、同様の手順を実行できます。

于 2009-03-05T19:45:45.107 に答える
1

RedGateのツールを使用するオプションは3つあります。

  1. クライアントに比較を実行してもらいます。SQL Compareのライセンスを購入し、データベースのスキーマスナップショットをクライアントに送信するようにクライアントを説得する必要があります。
  2. クライアントサイトで実行できるRedGateのSQL比較SDK(10ディストリビューションで595ドル)を使用して、独自のアプリケーションを作成します。
  3. クライアントにスキーマスナップショットを送信するように依頼し、SQLCompareの独自のコピーを使用して自分で比較を実行します。Red Gateは、SQL Snapperと呼ばれる無料のスキーマスナップショットツールを提供します。このツールは、クライアントから電子メールで送信できるスナップショットを作成します。これにはデータが含まれていないため、クライアントが喜んで検討する可能性があります。

SQLSnapperツールとSQLComparisonSDKのサンプルコードは、labs.red-gate.comのWebサイトからダウンロードできます。

Oracleとの互換性は、早期アクセスビルドの形式で利用できるようになりました。ツールに興味がある、または試してみたい場合は、製品ページにアクセスしてください。ツールが完全にリリースされるまで、これを無料で使用できます。

Red Gate Software、プロダクトマネージャー、DavidAtkinson氏。

于 2009-09-03T14:55:38.133 に答える
0

これには Redgate SQL Compare を使用しており、長年にわたって役に立っています。

また、ルックアップ テーブルの内容を比較するために Redgate SQL Data Compare を使用します。

于 2009-03-03T14:11:28.857 に答える
0

redgate の人々は、SQL Compareという優れたツールを持っています。

于 2009-03-03T14:11:53.303 に答える
0

MySQL のSHOW CREATE TABLESのようなスキーマ ダンプを作成できますか?

于 2009-03-03T14:12:36.030 に答える
0

あなたが Windoze を使用している場合、私は Advanced Query Tool を何年も使用してきました。そして、お金のために、それが他の何よりも優れていることを証明できます。特に、データベース間の差分レポートを生成します。これは ODBC/VB6 であり、多数のデータベースに対して実行できます。見てみな。(いいえ、私は QueryTool の一員ではありませんし、その一部も所有していません。ただの幸せなクライアントです。)

于 2009-03-04T05:03:05.593 に答える