项目程序遭遇Oracle JDBC Driver BUG-4390875 , 每次都得手动更新乱码字符,而且极度影响到项目的正常运行.联系Oracle官方,从Metalink得到补丁包p4390875_10204_Generic.zip.然后按照官方说明操作.最后更新到服务器的lib目录,替换旧的. 一切运行正常了.
//BUG-4390875说明:
THIN driver throw NullPointerExceoption for
OracleResultSet.getString() of invalid characters in AL32UTF8
database.
//显示异常
Caused by: java.lang.NullPointerException
at java.lang.String.<init>(String.java:176)
at oracle.sql.CharacterSet.AL32UTF8ToString(CharacterSet.java:1517)
at oracle.jdbc.driver.DBConversion.CharBytesToString(DBConversion.java:589)
at oracle.jdbc.driver.DBConversion.CharBytesToString(DBConversion.java:542)
at oracle.jdbc.driver.LongAccessor.getString(LongAccessor.java:217)
at oracle.jdbc.driver.T4CLongAccessor.getString(T4CLongAccessor.java:422)
at oracle.jdbc.driver.CharCommonAccessor.getObject(CharCommonAccessor.java:688)
at oracle.jdbc.driver.OracleResultSetImpl.getObject(OracleResultSetImpl.java:915)
at org.springframework.jdbc.support.JdbcUtils.getResultSetValue(JdbcUtils.java:226)
没有Metalink帐户的话,可以直接去Oracle网站下载Oracle发布的10.2.0.5 Patch Set(该包是升级Oracle Enterprise Manager的Grid Control的) 引用里面的jdbc 驱动也可以,因为Oracle官方说明这个包里也修复了那个bug.
Make sure that when using the 11g JDBC drivers you replace ojdbc14.jar with either ojdbc5.jar when using the jdk 1.5. And with ojdbc6.jar when using the jdk 1.6.
1. Download the required one-off/backport patch from MetaLink.
2. Extract this downloaded to patch to an arbitrary directory on the local system.
3. Make a note of the extracted .class file(s) in the patch, as well as the exact path to those files. Only the .class files are of interest; ignore any other files included in the extracted patch.
4. Create another temporary directory (hereafter referred to as "TEMP") -- make sure that this directory is empty.
5. Copy the old JDBC JAR file to the TEMP directory.
6. Extract the JDBC JAR file using the following syntax:
% jar xvf ojdbc14.jar
7. Replace the specific .class files in the extracted JDBC JAR file with the corresponding fixed .class files in the patch.
8. Remove the JDBC JAR file from the TEMP directory.
9. Re-JAR the JDBC JAR file using the following syntax:
% jar cvf ojdbc14.jar *
10. Copy the newly made JDBC JAR file to its original location.
分享到:
相关推荐
These are the driver versions in the 11R2 release: - JDBC Thin Driver 11R2 100% Java client-side JDBC driver for use in client applications, ... driver used to be called the "JDBC Kprb Driver".
- ** JDBC-OCI Driver**: 需要Oracle本地客户端库,它通过Oracle Call Interface (OCI) 进行通信,适合于本地高速访问。 - ** JServer Driver**: 这是基于旧版的Oracle Net Services,已不再推荐使用。 - ** ...
然后,通过标准的JDBC API,如`Class.forName("oracle.jdbc.driver.OracleDriver")`来加载驱动,并使用`DriverManager.getConnection()`建立数据库连接。 6. **注意事项**: - 官方下架意味着可能存在的安全风险和...
这一天终于到来,在11g中,引用oracle.jdbc.driver不再通过编译。 3.j2se 1.2,1.3,1.4不再支持。11R1不再包括这些版本的jar和zip,如果仍然使用这些版本,可以继续使用10gR2的jdbc。 4.11gR1 Thin driver支持...
oraclejdbc.jar”提到了两个重要的Java数据库连接驱动,分别是MySQL的JDBC驱动和Oracle的JDBC驱动。JDBC(Java Database Connectivity)是Java中用于与各种数据库进行交互的一种标准接口,它允许Java程序通过Java ...
这一天终于到来,在11g中,引用oracle.jdbc.driver不再通过编译。 3.j2se 1.2,1.3,1.4不再支持。11R1不再包括这些版本的jar和zip,如果仍然使用这些版本,可以继续使用10gR2的jdbc。 4.11gR1 Thin driver...
In Oracle Metalink (Oracle's support site - Note ID 736273.1) I found that this is a bug in JDBC adapter (version 10.2.0.0.0 to 11.1.0.7.0) that when you call preparedStatement with more than 7 ...
描述中提到的“Oracle11 6的ojdbc的driver驱动的bug”可能是指在Oracle11g Release 1 (11.1.0) 版本中,ojdbc驱动存在某些已知的问题或性能瓶颈。这些问题可能会影响Java应用程序与Oracle数据库之间的通信,包括但不...
例如,通过`Class.forName("oracle.jdbc.driver.OracleDriver")`加载驱动,然后使用`DriverManager.getConnection()`方法创建数据库连接。 5. **配置与连接**: 配置数据库连接通常需要设置以下参数:数据库URL...
Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@hostname:port:sid", "username", "password"); ``` 5. **特性**: - **JDBC遵从性**:...
Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection(url, "username", "password"); ``` 这里,`Class.forName()`方法用于加载Oracle的JDBC驱动,然后`...
1. Oracle驱动:Oracle的JDBC驱动是oracle.jdbc.driver.OracleDriver。 2. 连接URL:格式为"jdbc:oracle:thin:@[hostname]:[port]:[service_name]",例如:"jdbc:oracle:thin:@localhost:1521/XE"。 3. 示例代码: `...
- 使用`Class.forName()`方法加载驱动,例如`Class.forName("oracle.jdbc.driver.OracleDriver")`或`Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")`。 - 使用`DriverManager.getConnection()`...
1. ** Thin Driver (Oracle JDBC Thin Driver)**:这是一个轻量级、纯Java实现的驱动,不依赖于Oracle客户端软件。它直接通过网络协议与数据库服务器通信,适合互联网应用。 2. ** OCI Driver (Oracle Call ...
通过 JDBC,Java 应用程序可以连接到各种支持 JDBC 的数据库,包括 MySQL、Oracle、SQL Server 等。 MySQL Connector/J 8.0.27 版本的发布意味着它已经经过了严格的测试,兼容 MySQL 数据库的 8.0.x 版本,同时也...
Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection(url, username, password); // 使用连接执行数据库操作... } catch (Exception e) { e.printStackTrace();...
Oracle JDBC驱动是Oracle数据库与Java应用程序之间通信的重要桥梁。标题中的"oracl_ojdbc6"表明我们关注的是Oracle JDBC驱动的ojdbc6版本。Oracle JDBC驱动主要有两种类型: Thin驱动和 Thick驱动,ojdbc6属于 Thin...
例如,通过`Class.forName("oracle.jdbc.driver.OracleDriver")`加载驱动,然后使用`DriverManager.getConnection()`建立数据库连接。在Atlassian的产品中,这个驱动可能被用来实现数据的存取、报表生成、用户管理等...
前提Spring 框架 4.1.0.RELEASE 数据源本身是在AP服务器端定义的(我试过Wildfly 9.0) ### 设置#### AP 服务器端定义Wildfly 端的 XA 数据源设置Wildfly 端数据源设置jdbc-driver setting 分别为oracle和postgresql...