我有一个表与外键到另一个表中的唯一列。我可以看到外键被正确定义,但是当我尝试使用下面提到的使用JDBC的代码来获得它时,我没有看到它。我已经验证过,当外键引用另一个表的主键时,这会起作用。从Oracle使用JDBC获取所有外键唯一索引
所以我的问题是“如何使用JDBC在Oracle中获得唯一索引列的外键?”。
ResultSet rset = databaseMetaData.getImportedKeys(null, dbName, tableName);
while(rset.next()){
String column_name = rset.getString("FKCOLUMN_NAME");
String pk_table = rset.getString("PKTABLE_NAME");
String pk_column = rset.getString("PKCOLUMN_NAME");
String constraint_name = rset.getString("FK_NAME");
System.out.println(column_name + " ==> " + pk_column + "(TBL:" + pk_table + ")(CN:" + constraint_name + ")");
}
rset.close();
附加信息:有人曾用getCrossReference建议,但与问题是,我需要知道引用约束的源和目标表事先我不知道。 另外我正在寻找一种纯粹的jdbc api解决方案,它不使用任何特殊的Oracle模式或查询。我的应用程序处理多个数据库,但我试图将它隐藏在一层通用jdbc api后面。
2014-05-16
MickJ
+0
嗨米克我有同样的问题,我试图从一个给定的主键获取所有的外键和他们的表来知道表之间的关系,你有没有发现足够好的东西? –