我有一個表與外鍵到另一個表中的唯一列。我可以看到外鍵被正確定義,但是當我嘗試使用下面提到的使用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後面。
嗨米克我有同樣的問題,我試圖從一個給定的主鍵獲取所有的外鍵和他們的表來知道表之間的關係,你有沒有發現足夠好的東西? –