为Oracle db的C3P0连接池数据源中的连接对象设置ResultSetMetaDataOptions

时间:2013-10-17 20:53:16

标签: oracle database-connection resultset tablename

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

所有在线资料都建议将ResultSetMetaDataOptions设置为“1”,但它不起作用。

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。我也无法找到任何其他方法来设置该属性并使其工作。