Я использую oracle 11g с гибернацией. Hibernate настроен для проверки схемы при запуске, однако по какой-то причине он не может найти одну таблицу и не удается.DatabaseMetataData не видит таблицу
У меня странная ситуация, когда 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')
Что может быть причиной?
Это синоним, или имя таблицы на самом деле 'TABLE2' (' getTables' требует, чтобы случай был точным совпадением)? –
@MarkRotteveel, это не синоним, я могу видеть, что таблица в 'USER_TABLES' –