Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring java.sql.SQLException:java和sql对象类型不一致:SYS.XMLTYPE_Spring_Oracle_Jdbc_Spring Data_Xmltype - Fatal编程技术网

Spring java.sql.SQLException:java和sql对象类型不一致:SYS.XMLTYPE

Spring java.sql.SQLException:java和sql对象类型不一致:SYS.XMLTYPE,spring,oracle,jdbc,spring-data,xmltype,Spring,Oracle,Jdbc,Spring Data,Xmltype,尝试使用SpringJDBC从XMLTYPE列读取数据 声明 @Autowired OracleXmlHandler sqlXmlHandler 对象读取为字符串 sqlXmlHandler.getXmlAsString(结果集,“xml\u列”) 获取以下异常: 原因:java.sql.SQLException:java和sql对象类型不一致:SYS.XMLTYPE 在oracle.sql.OPAQUE.toClass(OPAQUE.java:395)~[ojdbc6-11.2.0.4.ja

尝试使用SpringJDBC从XMLTYPE列读取数据

声明
@Autowired
OracleXmlHandler sqlXmlHandler

对象读取为字符串
sqlXmlHandler.getXmlAsString(结果集,“xml\u列”)

获取以下异常:

原因:java.sql.SQLException:java和sql对象类型不一致:SYS.XMLTYPE
在oracle.sql.OPAQUE.toClass(OPAQUE.java:395)~[ojdbc6-11.2.0.4.jar:11.2.0.4.0]
在oracle.sql.OPAQUE.toJdbc(OPAQUE.java:333)~[ojdbc6-11.2.0.4.jar:11.2.0.4.0]
在oracle.jdbc.driver.NamedTypeAccessor.getObject(NamedTypeAccessor.java:193)~[ojdbc6-11.2.0.4.jar:11.2.0.4.0]
在oracle.jdbc.driver.NamedTypeAccessor.getObject(NamedTypeAccessor.java:123)~[ojdbc6-11.2.0.4.jar:11.2.0.4.0]
在oracle.jdbc.driver.OracleResultSetImpl.getObject(OracleResultSetImpl.java:1108)~[ojdbc6-11.2.0.4.jar:11.2.0.4.0]
在oracle.jdbc.driver.OracleResultSet.getObject(OracleResultSet.java:462)~[ojdbc6-11.2.0.4.jar:11.2.0.4.0]
在org.jboss.jca.adapters.jdbc.WrappedResultSet.getObject(WrappedResultSet.java:1199)~[?:?]

xml具有xdb6、xmlparserv2、SpringDataOracle和SpringOXM所需的条目

在没有SpringJDBC的情况下也尝试了其他替代方案


任何见解都会非常有用。

您的查询是什么样的?您还可以向我们展示表规范吗?
getJdbcTemplate().query(“从xmltable中选择xml_列,其中id=?”,args,newresultsetextractor(){}
遵循指南:如果您正在学习该教程,则列名必须是xml\u text而不是xml\u column。我相信列名可以是任何选择项。列名需要与表中列的名称匹配。因此,您需要查看xmltable的表定义,并在select查询中匹配该定义。除非从表中的规范中更改了它,您需要“从xmltable中选择xml_文本,其中id=?”。您可以使用“从xmltable中选择xml_文本作为xml_列”来别名该列,但仍然需要按其名称引用该列。