Ответ 1
-
реализация интерфейса метаданных была реализована поставщиками драйверов. Он может не поддерживаться некоторыми драйверами и некоторыми db. Вот текст из javadoc: Некоторые методы DatabaseMetaData возвращают списки информации в виде объектов ResultSet. Регулярные методы ResultSet, такие как getString и getInt, могут использоваться для извлечения данных из этих объектов ResultSet. Если данная форма метаданных недоступна, возвращается пустой ResultSet.
-
Имя таблицы чувствительно к регистру в оракуле
-
или попробуйте подход ниже.
DatabaseMetaData dm = conn.getMetaData( ); ResultSet rs = dm.getExportedKeys( "" , "" , "table1" ); while( rs.next( ) ) { String pkey = rs.getString("PKCOLUMN_NAME"); System.out.println("primary key = " + pkey); }
вы также можете использовать getCrossReference или getImportedKeys для извлечения первичного ключа