[Seasar-user:11158] Re: [dolteng]DatabaseViewでHiRDBのテーブルのスキーマ情報取得

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 10月 19日 (金) 23:00:26 JST


小林 (koichik) です.

Date:    Fri, 19 Oct 2007 14:56:18 +0900
From:    <[E-MAIL ADDRESS DELETED]>
To:       <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:11135] [dolteng]DatabaseViewでHiRDBのテーブルのスキーマ情報取得

> ■エラー内容(Eclipseの[エラー・ログ]ビューの表示内容)
> [ESSR0072]SQLで例外発生(SQL[],Message=[KFPJ01017-E Invalid table type,index=3 table type=SYNONYM[jdbMakerMetaData.getResultTables]]),
> ErrorCode=-1001017,SQLState=R2400)が発生しました
> 
> 上記エラー内容の、「KFPJ1017-E」がHiRDBのエラーコードですが、
> 「getTablesメソッドの引数でString型配列にしていたテーブルの型に誤りがある。」場合に表示されるメッセージです。
> (エラーメッセージの詳細ですが、indexはString型配列の添え字、
> typeは指定したテーブルの型の値。)

HiRDB では getTables() で SYNONYM を渡すと
エラーになるということでしょうか.
DatabaseMetaData#getTableTypes() から取得するのが
筋ではあるので,その方向で対処したいと思います.

念のため,以下のコードを実行して
確認していただけないでしょうか.

con = ...;
DatabaseMetaData dbmd = getMetaData();

ResultSet rs = dbmd.getTableType();
while (rs.next()) {
  System.out.println(rs.getString(1));
}
rs.close();
dbmd.getTables(null, schema, "%", new String[] {"SYNONUM"});


最後の行の schema は必要なら適切に指定してください.

おそらく,標準出力に SYNONYM が出力されず,最後の行で
KFPJ1017-E な例外がスローされるのだと思います.

P.S.
こちらでは HiRDB の環境もなければ情報もほとんど
持ち合わせていないので,HiRDB で動かなくても
対処が難しいこともありそうです.
できれば日立グループの何方かに Dolteng の
コミッタになっていただいて,HiRDB での動作確認や
問題の対処などでご協力いただけると助かります.



--
<signature>
   <name>Koichi Kobayashi</name>
   <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>




Seasar-user メーリングリストの案内