DatabaseMetataData没有看到表

时间:2013-10-10 10:43:26

标签: java oracle11g

我在hibernate中使用oracle 11g。 Hibernate配置为在启动时验证模式,但由于某种原因,它无法找到一个表并失败。

我遇到一种奇怪的情况:当java.sql.DatabaseMetaData看到同一模式中的其他表时,getTables没有看到一个表(String[] TYPES = {"TABLE", "VIEW"}; DatabaseMetaData meta = ... meta.getTables(null, "SCHEMA_NAME", "TABLE1", TYPES).next(); // true meta.getTables(null, "SCHEMA_NAME", "TABLE2", TYPES).next(); // false 返回空结果集)。

所以我有以下情况:

select * from schemaName.table1
select * from schemaName.table2

但是成功执行了以下查询:

select * from user_tables where table_name in ('TABLE1', 'TABLE2')

更多我可以查询字典表并查看这两个表:

{{1}}

可能是什么原因?

1 个答案:

答案 0 :(得分:2)

DatabaseMetaData md = connection.getMetaData();
ResultSet rs = md.getTables(null, null, "%", null);
while (rs.next()) {
  System.out.println(rs.getString(3));
}

尝试以上代码

第3列代表Table_name 点击了解所有列numbers