[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 メーリングリストの案内