- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我按照下面的教程从存储过程中检索 XMLType 数据
http://docs.oracle.com/cd/B19306_01/appdev.102/b14259/xdb11jav.htm#g1039140示例 13-4 XMLType Java:返回 XMLType 数据
当我运行代码时,我得到了这个错误,
Exception in thread "main" java.lang.NoClassDefFoundError: oracle/xml/parser/v2/XMLParseException
at oracle.xdb.XMLTypeFactory.create(XMLTypeFactory.java:67)
at oracle.sql.OPAQUE.toClass(OPAQUE.java:328)
at oracle.sql.OPAQUE.toJdbc(OPAQUE.java:278)
at oracle.sql.OPAQUE.toJdbc(OPAQUE.java:259)
at oracle.jdbc.driver.NamedTypeAccessor.getObject(NamedTypeAccessor.java:190)
at oracle.jdbc.driver.NamedTypeAccessor.getObject(NamedTypeAccessor.java:117)
at oracle.jdbc.driver.OracleCallableStatement.getObject(OracleCallableStatement.java:1579)
at oracle.jdbc.driver.OracleCallableStatementWrapper.getObject(OracleCallableStatementWrapper.java:815)
at com.example.TestXMLDAO.main(TestXMLDAO.java:48)
Caused by: java.lang.ClassNotFoundException: oracle.xml.parser.v2.XMLParseException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 9 more
Java 代码片段:
import java.io.IOException;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import oracle.jdbc.OracleTypes;
import oracle.xdb.XMLType;
................
// Prepare to call the stored procedure get_group_details.
String sql = "{call mypackage.get_records(?,?,?,?,?,?,?,?)}";
callableStatement = conn.prepareCall(sql);
callableStatement.setString(1, "");
callableStatement.setString(2, "");
callableStatement.setString(3, "");
callableStatement.setString(4, "");
callableStatement.setString(5, "abb%");
callableStatement.setString(6, "F");
callableStatement.setString(7, "F");
callableStatement.registerOutParameter(8, OracleTypes.OPAQUE,
"SYS.XMLTYPE");
// execute get_group_details
// callableStatement.executeQuery();
callableStatement.executeQuery();
callableStatement.getObject(8);
// get cursor and cast it to ResultSet
xml = (XMLType) callableStatement.getObject(8);
System.out.println(xml.getStringVal());
} catch (Exception ex) {
ex.printStackTrace();
} finally {
// Close the statement
callableStatement.close();
// Close the connection
conn.close();
}
PLSQL 程序片段
PROCEDURE get_records
(
grp1 IN a.name%TYPE DEFAULT NULL
,grp2 IN a.name%TYPE DEFAULT NULL
,grp3 IN a.name%TYPE DEFAULT NULL
,grp4 IN a.name%TYPE DEFAULT NULL
,grp5 IN a.name%TYPE DEFAULT NULL
,flag1 IN a.flag%TYPE DEFAULT 'F'
,flag2 IN a.flag%TYPE DEFAULT 'F'
,xml_type_out OUT xmltype
);
包含的 jar :ojdbc6.jar、xdb.jar
知道我错过了什么吗?
此问题已解决。但是当部署在JBoss服务器时,另一个问题- 如果您有任何想法,请引用这里- Xmlparserv2 error while application deployed in jboss, Installing Oracle ojdbc module in JBoss for Java web application
最佳答案
通过添加所需的 jars 解决了问题
类路径中需要以下三个 jar,[我还有这些 jar,由于 jar 的版本错误,我遇到了错误]
ojdbc6.jar、xdb6.jar、xmlparserv2-11.1.1.jar
即使您有这些 jar,您也可能会遇到错误,就像我在包含错误版本的 xmlparserv2.jar 时遇到的那样。
因此,需要注意的重要事项是这些 jar 的版本和兼容性。
对我有用的 [我的 Oracle 数据库版本:11.2.0.4.0]
ojdbc6.jar; xdb6.jar:
http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html
xmlparserv2-11.1.1.jar 可在此处获取:( SQL Developer )(在 sqldeveloper\modules\oracle.xdk_12.1.2 中)
[按照@Lukas Eder 的建议删除了第三方引用链接,谢谢]
关于Java:从 StoredProcedure 返回 XMLType 数据,使用 ojdbc6.jar xdb6.jar xmlparserv2.jar 进行 Java 到 PLSQL 交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25208239/
我在将 xmltype 插入 pl/sql 指定位置的另一个 xmltype 时遇到问题。 第一个变量 v_xml 的形式为: 123 01-01-2015 第二个 v
我将 Oracle DB 中的 XMLType 文件加载到 Java 应用程序中。我准备了一个类来处理 XML 文件上的操作,如下所示: public class XMLDoc { private O
我有以下用 XmlType 属性装饰的基类 [Serializable] [XmlType("Base")] public class Base { [XmlElement(ElementNa
我有一个将 XML 存储在 Oracle 表中的应用程序 XMLType .我想对该数据进行全文搜索。 Oracle 文档,位于 Full-Text Search Over XML Data , 建议
我正在尝试输出 schemaLocation编码 xjc 时正确属性- 生成的类实例。根元素类如下所示: @XmlAccessorType(XmlAccessType.FIELD) @XmlType(
我向 Oracle XML DB 专家提出了一个简短的问题: 我测量了几个大型xml文件的插入性能。理论上XMLType CLOB应该具有无与伦比的插入性能,因为插入的XML文档是直接写在一个字符大对
这是我目前使用的代码: SET serveroutput ON CREATE OR REPLACE PROCEDURE test_proc(i_xml varchar2) IS l_name VARC
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 8年前关闭。 Improve this qu
我有一个简单的查询: WITH xtbl AS ( SELECT XMLTYPE ('1') AS xcol FROM DUAL ) SELECT XMLQUERY ('copy $tmp
我目前拥有非 utf-8 数据库,但我需要使用 utf-8 编码生成 XMLType 变量。我有一个解决方法,但 Oracle 中似乎存在错误,请参见以下链接: https://forums.orac
我想从 中选择数据XML 文件使用 Oracle SQL . 这是我的 XML 文件: 0
我有一个包含 XMLType 字段的表。该表是使用以下 DDL/DML 创建和加载的: CREATE TABLE T_ECO_test_LOG ( SECID NUMBER
在 java 中我想使用 oracle XMLType。我加了 XMLType type = new XMLType(conn, ""); 但我总是得到 Caused by: java.lang.Cl
我正在尝试将java字符串对象存储在javabean中,并尝试将其转换为xml格式。它存储成功,但每当我尝试从java bean获取数据时,我都会以简单字符串格式而不是xml格式收到数据。 请帮助我。
您好,序列化过程中这一行是什么意思? [XmlType(AnonymousType = true)] public class classname { } xsd.exe 为所有类生成它。我阅读了文档
是否可以将 javax.xml.bind.annotation.XmlType 转换为 XML 的字符串表示形式? 例子: 以下 Req 类来自第三方库,因此我无法覆盖 toString() 方法。
我有一个像这样的简单 xml: 0 Date @Today 1 Id 22 我想遍历每个参数,如果值以“@”开头,则调用一个函数,该函数将值作为参数并返回一
我想在 XML 文档上有一个 select 语句,其中一列应该返回我的每个节点的路径。 例如给定数据 SELECT * FROM TABLE(XMLSequence( XMLTYPE('
我正在做一项作业,我要考虑两种解决方案来存储网页中使用的文本。场景:一个类一个网页,一门课几堂课。 第一个选择是普通的关系型数据库,这个可以。 另一种选择是具有两个“正常”属性和一个具有 Oracle
作为尝试学习 WCF 的一部分,我正在阅读有关序列化的内容。我正在努力了解如何在 .NET 3.5 中控制序列化。例如,我有一个带有一些公共(public)属性的简单类。通过将 DataContrac
我是一名优秀的程序员,十分优秀!