我创建了一个程序来使用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();
}
}
}
答案 0 :(得分:0)
在Oracle模式(= user)中,名称以大写形式存储,因此您还需要在JDBC调用中以大写形式传递模式名称。
我认为您还需要以大写形式传递类型列表。
dbmd.getTables(null,"RT",null,new String[]{"TABLE"});