dbunit xml を使用して、複数のデータベースで実行されるテスト スイートの作成に取り組んでいます。残念ながら、昨日、スキーマ内の一部のテーブル名が 30 文字を超えており、Oracle では切り捨てられていることがわかりました。たとえばunusually_long_table_name_error
、mysql で名前が付けられたテーブルはunusually_long_table_name_erro
、Oracle で名前が付けられます。これは、私の dbunit ファイルに<unusually_long_table_name_error col1="value1" col2="value2 />
. NoSuchTableException
これらの行は、Oracle でテストを実行するとa をスローします。
これに対するプログラムによる回避策はありますか? Oracle 用の特別な xml ファイルの生成を避けたいと思っています。カスタムを調べましたが、インターセプト/スプーフィングの方法がわからないMetadataHandler
多くのデータ型が返されます。java.sql
自分で xml を読み取り、各テーブル名を 30 文字に切り捨て、それを一時ファイルに書き出すかStringBufferInputStream
、それを DataSetBuilder への入力として使用することはできますが、それを達成するには非常に多くの手順が必要なようです。たぶん、シノニムやストアドプロシージャ、またはその他の良さを知っている忍者オラクルのトリックが役立つかもしれません。これらのアイデアの 1 つは、他のアイデアよりも明らかに優れていますか? そのシンプルさと優雅さで私を圧倒する他のアプローチはありますか? ありがとう!