Исключение при извлечении значения XMLType из Oracle в Java

Я пытаюсь извлечь тип данных XML из таблицы Oracle и столкнулся с этим исключением:

java.lang.NullPointerException: null
at oracle.jdbc.driver.NamedTypeAccessor.getOracleObject(NamedTypeAccessor.java:302) ~[ojdbc6-11.2.0.3.0.jar:11.2.0.3.0]
at oracle.jdbc.driver.NamedTypeAccessor.getSQLXML(NamedTypeAccessor.java:413) ~[ojdbc6-11.2.0.3.0.jar:11.2.0.3.0]
at oracle.jdbc.driver.OracleResultSetImpl.getSQLXML(OracleResultSetImpl.java:1251) ~[ojdbc6-11.2.0.3.0.jar:11.2.0.3.0]
at oracle.jdbc.driver.OracleResultSet.getSQLXML(OracleResultSet.java:488) ~[ojdbc6-11.2.0.3.0.jar:11.2.0.3.0]

Фрагмент кода:

SQLXML sqlxml = resultSet.getSQLXML(1);

Я дважды проверил запрос, который извлекает набор результатов, и он работает так, как ожидалось. Также я сталкиваюсь с этой проблемой только для столбца XMLType.


person vatsal mevada    schedule 23.10.2015    source источник


Ответы (1)


  public static void main(String[] args) throws SQLException, Exception {
        Connection con = ConnectionDefinition.getOracleConnection(); //my oracle connection
        PreparedStatement ps = con.prepareStatement("SELECT a.b FROM xml_test a");       
        ResultSet rs = ps.executeQuery();
        while(rs.next()){
           if( rs.getObject(1) != null ){
                 SQLXML xml = rs.getSQLXML(1);
                 System.err.println(xml.getString());
           } else {
                 System.err.println("xmltype is null");
           }                     
        }
        rs.close();
        con.close();        
    }

И пом зависимость. Я рекомендую использовать oracle drive в версии 11.2.0.4.

<dependencies>
    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0.4</version>
    </dependency>
    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>xdb</artifactId>
        <version>11.2.0.4</version>
    </dependency>
    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>xmlparserv2</artifactId>
        <version>11.1.2</version>
    </dependency>
</dependencies>
person Arkadiusz Łukasiewicz    schedule 23.10.2015