1

これはSQLの生成に関する質問であり、SQLを作成するSQLでもORMでもありません。

たとえば、特定のスキーマまたは名前空間内のすべてのテーブルに対して、insert ステートメントの作成を可能にするクロス データベース ツールです。名前空間/スキーマが Sql Server 2008 の Aqua であるとすると、ユーティリティが付属して、その名前空間/スキーマに対して可能なすべての挿入ステートメントを生成します。また、Oracle/MySql/Postgres/db2 などで動作します。

ありがとう。ボブ

4

1 に答える 1

1

ANSI SQL は、スキーマ INFORMATION_SCHEMA の下にビューの標準セットを提供し、この目的のためだけにメタデータを提供します。

単純なテーブル挿入ステートメント テンプレートを生成する場合、特定のテーブルの挿入ステートメントを生成するために実際に必要なすべての情報は、次のクエリを実行することです。

select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_CATALOG = <my-db-name>
  and TABLE_SCHEMA  = <table-owner-schema>
  and TABLE_NAME    = <table-name>
order by ORDINAL_POSITION

ANSI 情報スキーマ ビューをサポートする任意のデータベースで。これにより、指定されたテーブルの列ごとに 1 つの行が期待どおりの順序で提供されます。

上記以外では、2 つのベンダーがメタデータを含むシステム テーブルのセットをサポートしていないため、クロスデータベース ソリューションのほぼ SOL です。残念ながら、Oracle が ANSI 情報スキーマ ビューをサポートしているとは思えません。

Red Gate の製品ファミリーを見るかもしれませんが: http://www.red-gate.com/

于 2011-05-06T22:53:48.903 に答える