有没有人通过 Oracle数据库的 getTableName() 成功地从 ResultSetMetaData 中检索表名?
所有在线材料都建议将ResultSetMetaDataOptions设置为"1",但它不起作用。
如本文所述 有关getTableName()的信息:
你好。很抱歉成为坏消息的承载者,但甲骨文的DBMS不发送 关于列来自哪个表的信息,所以预言机 驱动程序将永远无法实现该结果集元数据调用。 大多数DBMS也没有,所以你会看到99%的JDBC 驱动程序也不会实现该调用以返回任何有用的内容。 只有Sybase,具有最新的驱动程序和特定的可选功能 DBMS配置,已经做到了。DBMS 需要更改 大多数DBMS供应商永远不会费心去做。
编辑:我尝试了以下方法来设置参数:
java.util.Properties info = new java.util.Properties();
info.put ("user", "scott");
info.put ("password", "tiger");
info.put ("ResultSetMetaDataOptions", "1");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@myhost:1521:orcl", info);
但是,它不起作用 - 我仍然无法获得表名。此属性不在可能的属性列表中,您可以在此处查看:驱动程序文档。我也找不到任何其他方法来设置该属性并使其工作。