DatabaseMetaData程序不提取表名

时间:2016-07-18 12:38:04

标签: java oracle database-metadata

我创建了一个程序来使用DatabaseMetaData从用户rt获取所有表名,尽管程序编译成功并且运行它不会获取表名。它运行并显示表的列表:然后没有名称。程序退出。

有人可以帮我在程序中找到错误的逻辑。

//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();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

在Oracle模式(= user)中,名称以大写形式存储,因此您还需要在JDBC调用中以大写形式传递模式名称。

我认为您还需要以大写形式传递类型列表。

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