4

HSQL データベースで Oracle データベースを再作成しようとしています。これは、ローカル開発者システムでの単体テストを改善するためです。

私が知る必要があるのは、Oracle サーバー/クライアントで使用できるツール/コマンドがあり、Oracle データベースのすべてのオブジェクト (テーブル、シノニム、ビューなど) のすべての DDL コマンドを提供できることです。

作成した DDL コマンドを調べて、これらのコマンドを HSQL 互換のコマンドに変換しようと計画しています。

出来ますか?

どんな提案でも大歓迎です。

システムインフォメーション:

Oracle DB: Oracle enterprise server 11g R2. 
HSQL DB: hsql 2.2.9
4

3 に答える 3

2

DBMS_METADATAパッケージをデータ ディクショナリと共に使用して、オブジェクトの DDL を生成できます。たとえば、スキーマ内のすべてのテーブルの DDL を生成するには

declare
  l_ddl clob;
begin
  for t in (select * from user_tables)
  loop
    l_ddl := dbms_metadata.get_ddl( 'TABLE', t.table_name, USER );
    <<do something with l_ddl>>
  end loop;
end;

実際に展開しようとしているものとはまったく異なるデータベースでテストすることが理にかなっていますか? DDL を最も近いアナログに変換したとしても、接続しているデータベースによっては、一部のテストで異なる結果が得られる可能性が非常に高いようです。開発者のマシンに Oracle (主にライセンスに関する懸念がある場合は、潜在的に Oracle XE) をインストールできないと確信していますか?

于 2013-02-07T23:07:28.307 に答える
1

役立つ製品がたくさんあります。

オープンソース: http://www.liquibase.org/manual/formatted_sql_changelogs

無料トライアル付きのコマーシャル: http://www.devart.com/dbforge/oracle/schemacompare/new-export-oracle-schema.html

通常、Oracle データベース専用に設計されたツールを使用すると、変換が必要な非標準の Oracle DDL が大量に生成される可能性があります。クロス プラットフォーム ツールは、作業を軽減する可能性が高くなります。

HSQLDB を ORA 互換モードで使用すると、DDL 内の一部の Oracle 型を同様の SQL 標準型に変換できます。そのため、型が問題になることはありません。

于 2013-02-07T23:17:52.863 に答える
0

1 つのオープン ソースの非アクティブなプロジェクトは、まったく同じことを行います。

http://schemamule.sourceforge.net/index.html

于 2013-11-15T06:16:57.683 に答える