• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Oracle 10g standardへのJDBC接続にてDataba)

Oracle 10g standardへのJDBC接続でgetTablesメソッドが機能しない問題はなぜ?

このQ&Aのポイント
  • Oracle 10g standardへのJDBC接続にて、DatabaseMetaData.getTablesメソッドが上手く機能しない現象が発生しています。プログラム内に記述した接続情報でNaviCatから接続すると問題なくテーブルが表示されることは確認済みです。また、同じプログラムで別のデータベースに接続する場合には問題なくテーブルが表示されます。
  • ドライバにはOracle 10g Expressのojdbc14.jarを使用しており、standard版への接続では正常にメソッドが機能しないことがあるようです。なぜこのような問題が発生するのでしょうか?
  • 質問者はこの問題に対して解決策を求めています。どうすればOracle 10g standardへのJDBC接続でgetTablesメソッドが正常に機能するようになるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Lieserl
  • ベストアンサー率81% (31/38)
回答No.2

試しにカタログ名やら、スキーマ名やらを検索の限定に使用しなかったらどうなりますか? ResultSet rs = meta.getTables(null, null, "%", null);

参考URL:
http://www.oracle.com/technology/sample_code/tech/java/codesnippet/jdbc/OracleDatabaseMetaData.html
pvge2rd37
質問者

お礼

回答ありがとうございます。 カタログ、スキーマ名を指定しないとテーブル名一覧が表示されました。 これはOracle側の権限の問題か何かでしょうか? やりたい事は達成出来ましたが、 カタログ、スキーマを指定してもテーブル名が取れるケースもあるので理由が気になります。 いずれにしても助かりました。ありがとうございます。

その他の回答 (1)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

確認する環境がないので 気づいた点だけ挙げさせてもらうわ。 利用するドライバは JDK1.4 > ojdbc14.jar JDK1.5 > ojdbc5.jar JDK1.6 > ojdbc6.jar ないものは公式サイトからダウンロードすること。 oracle.jdbc.driver.OracleDriver ではなく oracle.jdbc.OracleDriver を使うこと。

pvge2rd37
質問者

お礼

回答ありがとうございます。 新しいOracleは oracle.jdbc.OracleDriver を使用した方が良いんですね。 勉強になりました。 問題自体は以下のようにカタログ、スキーマを指定しなかったら解決しました。 先に試しておけば良かったです。 ("%"を null にするのは試したんですが。。) ResultSet rs = meta.getTables(null, null, "%", new String[] {"TABLE"}); ありがとうございました。

関連するQ&A

専門家に質問してみよう