2016-07-18 5 views
0

DatabaseMetaDataを使用してユーザーrtからすべてのテーブル名をフェッチするプログラムを作成しましたが、プログラムは正常にコンパイルされ、テーブル名をフェッチしていません。実行され、テーブルのリストが表示されます。プログラムは終了する。DatabaseMetaDataプログラムがテーブル名をフェッチしていない

ここに誰でも私のプログラムで間違ったロジックを見つけるのを手伝ってください。

//DataBaseMetaDataTest 
import java.sql.*; 
class DatabaseMetaDataTest 
{ 
    public static void main(String s[]) 
    { 
     try 
     { 
      Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","rt","pwdd"); 
      DatabaseMetaData dbmd=con.getMetaData(); 
      ResultSet rs=dbmd.getTables(null,"rt",null,new String[]{"Table"}); 
      System.out.println("list of tables:"); 
      while(rs.next()) 
      { 
       System.out.println(rs.getString(3)); 
      } 
     } 
     catch(Exception e) 
     { 
      e.printStackTrace(); 
     } 
    } 
} 
+0

私はなぜあなたは使用いけないあなただけのDatabaseMetaData(http://www.java2s.com/Code/JavaAPI/java.sql/ResultSetgetMetaData.htm) – Thomas

+0

で指定したテーブルからメタデータを取得することができると思いますall_tablesシステムテーブル( "辞書")? – Thomas

答えて

0

Oracleスキーマ(=ユーザー)の名前は大文字で格納されているため、JDBCコールでは大文字でスキーマ名も渡す必要があります。

大文字でも型リストを渡す必要があると思います。

dbmd.getTables(null,"RT",null,new String[]{"TABLE"}); 
+0

thnxx ...ヘルプ。それは働いた.. – Vikalp

+0

私は別のプログラムで助けてください...してください – Vikalp

関連する問題