java - ResultSetMetaData getTableName 返回空

标签 java jdbc metadata resultset

我试图通过以下代码从 ResultSetMetaData 获取 TableName:

 `Properties info = new java.util.Properties(); 
                    info.put ("user",this.username); 
                    info.put ("password",this.password); 
                    info.put ("ResultSetMetaDataOptions","1");
                    Connection conn = DriverManager.getConnection(this.url,info);

                    PreparedStatement preparedStatement = connection.prepareStatement(sql);
                                    ResultSet rs = preparedStatement.executeQuery();
                                    ResultSetMetaData metaData = rs.getMetaData();
                                    metaData.getTableName(0);
                                    for (int i = 1; i <= metaData.getColumnCount(); i++) {
                                        logger.info("Table Name : " + metaData.getTableName(i);)
                                    }`

我点击此链接:https://docs.oracle.com/cd/E13222_01/wls/docs91/jdbc_drivers/oracle.html#1075290

但是,getTableName 返回仍然为空。

如何设置ResultSetMetaDataOptions? 如何用其他方法选择tableName?

最佳答案

您链接的文档适用于非常老的驱动程序。 Oracle JDBC 驱动程序文档的最新版本在Using Result Set Metadata Extensions 中明确指出。 :

The oracle.jdbc.OracleResultSetMetaData interface is JDBC 2.0-compliant but does not implement the getSchemaName and getTableName methods because Oracle Database does not make this feasible.

换句话说,您无法获取 Oracle 的此数据。

关于java - ResultSetMetaData getTableName 返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49924292/

相关文章:

java - Hibernate+PostgreSQL 抛出JDBCConnectionException : Cannot open connection

spring - JdbcTemplate - 替换问号

c# - 编辑图像的细节

java - Ant build 无法扩展环境变量

java - 在java中使用selenium web驱动程序从div获取文本值

java - JDBC 时间戳和日期 GMT 问题

c++ - 我正在尝试获取媒体播放器的元数据,但在 QT 中不断出现 C2228 错误

Java在JFrame中使用构造函数参数创建cardLayout

Java将字符串与int数组关联起来

list 中的 Android 元数据返回 null