Oracle 10g standardへのJDBC接続にてDataba
Oracle 10g standardへのJDBC接続にてDatabaseMetaData.getTablesメソッドが上手く機能しません。
以下のコードにてOracleに接続してテーブル一覧をコンソールに表示したいのですがgetTables()メソッドで返されるResultSetの中身が無い(レコードが0行)ようです。
プログラム内に記述した接続情報(URL、スキーマ、カタログ、ユーザー、パスワード)でNaviCatから当該Oracleに接続すると問題なくテーブルなどが表示される事は確認済みです。
また同じプログラムで別に用意したOracle 10g Expressを接続先として設定すると問題なくコンソールにテーブル名一覧が表示されます。
プログラムに使用しているドライバはOracle 10g Expressの中に同梱されていたojdbc14.jarです。
これでは standard 版へは正常にメソッドが機能しないケースがあるのでしょうか?
どうぞ宜しくお願いします。
import java.sql.*;
public class OracleConTest {
public static void main(String[] args) {
try{
// ドライバクラスをロード
Class.forName("oracle.jdbc.driver.OracleDriver");
// データベースへ接続
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.1:1521:XXXX", "XXXXUSR", "XXXXPWD");
// ステートメントオブジェクトを生成
DatabaseMetaData meta = con.getMetaData();
ResultSet rs = meta.getTables( "XXXX", "XXXX", null, new String[] {"TABLE"});
while (rs.next()) {
String tableName = rs.getString("TABLE_NAME");
System.out.println(tableName);
}
rs.close();
}catch( Exception e){
e.printStackTrace();
}
}
}
お礼
完全に見過ごしていました。 ありがとうございます。