项目程序遭遇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,已不再推荐使用。 - ** ...
因为你运行的是oracle 10g,就可能面临这个问题,因为10g存在一个已知的bug,bug在oracle的编号为:Bug:5851267 oracle已经推出补丁,解决这个问题。 或者不应用补丁,以下面这种方式解决
然后,通过标准的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...
Dm6JdbcDriver.jar对应达梦数据库的某个6.x版本,而Dm7JdbcDriver.jar和Dm7JdbcDriver18.jar则分别对应7.x版本的驱动程序,Dm8JdbcDriver.jar则是支持最新版本的达梦数据库。 MySQL是一种广泛使用的开源关系型...
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. 示例代码: `...
1. ** Thin Driver (Oracle JDBC Thin Driver)**:这是一个轻量级、纯Java实现的驱动,不依赖于Oracle客户端软件。它直接通过网络协议与数据库服务器通信,适合互联网应用。 2. ** OCI Driver (Oracle Call ...
- 使用`Class.forName()`方法加载驱动,例如`Class.forName("oracle.jdbc.driver.OracleDriver")`或`Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")`。 - 使用`DriverManager.getConnection()`...
JDBC是Java API,由Sun Microsystems(现为Oracle公司)开发,用于在Java应用程序和各种类型的数据库之间建立连接。它为开发者提供了一种标准的接口,使得无论使用哪种数据库,都能使用相同的代码进行数据访问。 ...
通过 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...