- 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/
我在Linux上使用oci驱动连接到oracle 11.2.0,我发现在LD_LIBRARY_PATH下,只有libocijdbc11.so,但没有ojdbc jar文件,对吗?对于数据库连接,我应该
这个问题已经有答案了: adding classpath in linux (5 个回答) 已关闭 5 年前。 我正在使用 this 中的代码和编译命令问题(刚刚用 Test 替换了 DBConnec
我在 Oracle 中遇到了关于 BLOB 的非常特殊的问题。我正在使用 OracleXE 10g(10.2.0.1.0 版本的数据库),并尝试使用 ojdbc14_g 驱动程序版本 10.2.0.1
我一直在关注tutorial来自 Oracle,使用带有 Oracle 数据库和 JRuby 的 JDBC 驱动程序。我需要 JRuby 连接器类,并且我修改了它们的一些代码。我只想执行一个简单的插入
我需要一些 eclipse 方面的帮助。 我有一个项目需要连接到 oracle 数据库,所以我有 ojdbc jar 文件和一个简单的项目。 try { Class.forName("
我从 ojdbc getInt() 按列号收到了一个非常有趣的错误。 ps = conn.prepareStatement("select count(*) from tableA"); rs = p
我试图在使用 ojdbc 插入后获取自动生成的 id。 我的代码是这样的: public void insert(Connection con) throws SQLException { S
我有一个 Java 程序,用于在 Oracle 数据库中插入大量(750.000)条记录。我正在使用 OJDBC6 库和 OCI 客户端。要写入的表包含 330 列,其中 8 列出现在一个或多个索引中
我制作了一个注册表 reg1 并存储了 HTML 文件中每个注册用户的值。现在我用 HTML 制作了一个登录页面,用户可以在其中提供他们的用户名并查看他们输入的数据。我创建了一个用户“bbb”并且只想
JVM 时区详细信息: 印度标准时间亚洲/Calcutta019800000 数据库时区详细信息:美国中部标准时间/芝加哥3600000-21600000 示例代码: String sql = "se
我有Oracle 10g数据库和基于Spring 4.1.6框架的Java应用程序,它从Oracle中提取一些数据。我遇到一个问题,ojdbc 驱动程序返回 NUMBER 类型列中整数值的 float
我们目前正在使用 ojdbc14.jar,我们应该使用 ojdbc6.jar 吗? 更新:正在使用 Oracle 10g 最佳答案 如果您正在使用 java6,您可以(并且应该)使用 ojdbc6.j
这个问题在这里已经有了答案: Maven ojdbc jar dependency error: package oracle.jdbc does not exist (5 个答案) 关闭 4 年前
当我运行项目时出现错误: C:\Users\admin\Documents\NetBeansProjects\project\nbproject\build-impl.xml:1007: Warnin
标题 我正在尝试在我的 Java EE6 应用程序(类名 VisualizerRepository.java)中使用 jdbc 连接,我在 nexus 存储库中有 jdbc 驱动程序 该类必须执行一个
我正在使用 jOOQ .解决 jooq-sbt-plugin 的问题config ( here ) 导致了一个类路径问题,我认为该问题与原始问题不同。我设法让配置工作,但试图让它与 Oracle 驱动
尝试从连接/数据库元数据获取列的元数据。有什么方法可以使用 rs.beforeFirst() 或任何替代方法来移回光标? 以下是代码片段: ResultSet rs= read_conn.getMet
我有一个非常简单的应用程序,它有助于执行有关脚本执行的重复任务。没问题。应用程序在 Eclipse 中完美运行。 我使用 ojdbc14.jar 来处理我的 Oracle DB。 现在,我想创建一个
这个问题在这里已经有了答案: java.lang.ArrayIndexOutOfBoundsException at oracle.jdbc.driver.T4CTTIrxd.readBitVect
我正在开发一个需要访问 Oracle 数据库的 Java 应用程序。到目前为止,我使用 ojdbc6 驱动程序没有任何问题。现在我们将数据库切换到 Oracle 12c,所以我想使用更新的 JDBC
我是一名优秀的程序员,十分优秀!