java - 在 Java 中从 Oracle 中提取 XMLType 值时出现异常

标签 java oracle sqlxml xmltype

我试图从 Oracle 表中提取 XML 数据类型并遇到此异常:

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 列中遇到此问题。

最佳答案

  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();        
    }

以及pom依赖。我建议在11.2.0.4版本中使用oracle drive。

<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>

关于java - 在 Java 中从 Oracle 中提取 XMLType 值时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33296158/

相关文章:

sql-server - 在选择查询中向 xml 列添加节点

sql - 使用 SQL 查询 XML 数据列

java - Hadoop 工作依赖性与分布式的旧工作依赖性发生冲突

java - 用于获取 success.jsp 页面上的值的 ModelDriven 接口(interface)

sql - 子选择(而不是数字常量)恶化优化

java - 在 Oracle 中构建图像数据库 - 电子商务风格的界面可行吗?

sql-server - 使用 XML-DML 在现有实例中动态插入 XML 节点的位置

c# - 是否有使用 Java、C#、Python 或 Ruby 编写的 Google Contacts API 的 Hello World 示例?

java - 如何为小部件android制作切换按钮

sql - 我如何访问由触发器更新的值?