ResultSetMetaData getTableName返回空

时间:2018-04-19 15:01:35

标签: 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?

1 个答案:

答案 0 :(得分:1)

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

  

oracle.jdbc.OracleResultSetMetaData接口是JDBC   符合2.0但不实现getSchemaNamegetTableName方法,因为Oracle数据库不会这样做   可行的。

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