- ベストアンサー
※ 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メソッドが正常に機能するようになるのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
試しにカタログ名やら、スキーマ名やらを検索の限定に使用しなかったらどうなりますか? ResultSet rs = meta.getTables(null, null, "%", null);
その他の回答 (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 を使うこと。
質問者
お礼
回答ありがとうございます。 新しいOracleは oracle.jdbc.OracleDriver を使用した方が良いんですね。 勉強になりました。 問題自体は以下のようにカタログ、スキーマを指定しなかったら解決しました。 先に試しておけば良かったです。 ("%"を null にするのは試したんですが。。) ResultSet rs = meta.getTables(null, null, "%", new String[] {"TABLE"}); ありがとうございました。
お礼
回答ありがとうございます。 カタログ、スキーマ名を指定しないとテーブル名一覧が表示されました。 これはOracle側の権限の問題か何かでしょうか? やりたい事は達成出来ましたが、 カタログ、スキーマを指定してもテーブル名が取れるケースもあるので理由が気になります。 いずれにしても助かりました。ありがとうございます。