0

是否有人成功地通过 Oracle 数据库的 getTableName() 从 ResultSetMetaData 检索表名?

网上所有资料都建议将ResultSetMetaDataOptions设置为“1”,但是没有用。

4

1 回答 1

1

如此处所述有关 getTableName() 的信息

你好。很抱歉成为坏消息的承担者,但 Oracle 的 DBMS 不会发送有关列来自哪个表的信息,因此 oracle 驱动程序将永远无法实现该结果集元数据调用。大多数 DBMS 也没有,因此您会看到 99% 的所有 JDBC 驱动程序也不会实现该调用以返回任何有用的信息。只有具有最新驱动程序和特定可选 DBMS 配置的 Sybase 才能做到这一点。大多数 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);

但是,它没有用 - 我仍然无法获得表名。此属性不在您可以在此处查看的可能属性列表中:驱动程序文档。我也找不到任何其他方法来设置该属性并使其工作。

于 2013-10-17T21:36:21.220 回答