是否有人通过针对Oracle数据库的getTableName()成功从ResultSetMetaData中检索表名?
所有在线资料都建议将ResultSetMetaDataOptions设置为“1”,但它不起作用。
答案 0 :(得分:1)
如此处所述Information about getTableName():
您好。很抱歉成为坏消息的承担者,但Oracle的DBMS不会发送 关于列来自哪个表的信息,所以oracle 驱动程序将永远无法实现该结果集元数据调用。 大多数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);
然而,它没有用 - 我仍然无法得到表名。此属性不在可能的属性列表中,您可以在此处查看:Driver documentation。我也无法找到任何其他方法来设置该属性并使其工作。