`
lovejuan1314
  • 浏览: 342845 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle JDBC Driver BUG-4390875

阅读更多
项目程序遭遇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.





0
0
分享到:
评论

相关推荐

    Oracle JDBC Drivers release 11.2.0.3.0.rar

    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".

    Oracle JDBC驱动11.2.0.4

    - ** JDBC-OCI Driver**: 需要Oracle本地客户端库,它通过Oracle Call Interface (OCI) 进行通信,适合于本地高速访问。 - ** JServer Driver**: 这是基于旧版的Oracle Net Services,已不再推荐使用。 - ** ...

    com.oracle.ojdbc6-11.1.0.7.0

    然后,通过标准的JDBC API,如`Class.forName("oracle.jdbc.driver.OracleDriver")`来加载驱动,并使用`DriverManager.getConnection()`建立数据库连接。 6. **注意事项**: - 官方下架意味着可能存在的安全风险和...

    Oracle jdbc for 11g 最新版 驱动 ojdbc6.jar

    这一天终于到来,在11g中,引用oracle.jdbc.driver不再通过编译。  3.j2se 1.2,1.3,1.4不再支持。11R1不再包括这些版本的jar和zip,如果仍然使用这些版本,可以继续使用10gR2的jdbc。  4.11gR1 Thin driver支持...

    mysqljdbc.jar;oraclejdbc.jar

    oraclejdbc.jar”提到了两个重要的Java数据库连接驱动,分别是MySQL的JDBC驱动和Oracle的JDBC驱动。JDBC(Java Database Connectivity)是Java中用于与各种数据库进行交互的一种标准接口,它允许Java程序通过Java ...

    Oracle jdbc for 11g 最新版 驱动 ojdbc6dms.jar

    这一天终于到来,在11g中,引用oracle.jdbc.driver不再通过编译。  3.j2se 1.2,1.3,1.4不再支持。11R1不再包括这些版本的jar和zip,如果仍然使用这些版本,可以继续使用10gR2的jdbc。  4.11gR1 Thin driver...

    解决oracle 驱动bug: preparestatement ArrayIndexOutOfBounds

    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 的ojdbc 去除了bug

    描述中提到的“Oracle11 6的ojdbc的driver驱动的bug”可能是指在Oracle11g Release 1 (11.1.0) 版本中,ojdbc驱动存在某些已知的问题或性能瓶颈。这些问题可能会影响Java应用程序与Oracle数据库之间的通信,包括但不...

    连接Oracle数据库所需jar包

    例如,通过`Class.forName("oracle.jdbc.driver.OracleDriver")`加载驱动,然后使用`DriverManager.getConnection()`方法创建数据库连接。 5. **配置与连接**: 配置数据库连接通常需要设置以下参数:数据库URL...

    ojdbc14-10.2.0.3.0.zip

    Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@hostname:port:sid", "username", "password"); ``` 5. **特性**: - **JDBC遵从性**:...

    oracle的jar包.rar

    Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection(url, "username", "password"); ``` 这里,`Class.forName()`方法用于加载Oracle的JDBC驱动,然后`...

    jdbc针对不同数据库的连接方式demo.rar

    1. Oracle驱动:Oracle的JDBC驱动是oracle.jdbc.driver.OracleDriver。 2. 连接URL:格式为"jdbc:oracle:thin:@[hostname]:[port]:[service_name]",例如:"jdbc:oracle:thin:@localhost:1521/XE"。 3. 示例代码: `...

    ojdbc6-11.2.0.4.0.zip

    1. ** Thin Driver (Oracle JDBC Thin Driver)**:这是一个轻量级、纯Java实现的驱动,不依赖于Oracle客户端软件。它直接通过网络协议与数据库服务器通信,适合互联网应用。 2. ** OCI Driver (Oracle Call ...

    Oracle驱动jar包和sqlserver驱动jar包

    - 使用`Class.forName()`方法加载驱动,例如`Class.forName("oracle.jdbc.driver.OracleDriver")`或`Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")`。 - 使用`DriverManager.getConnection()`...

    适用SQL Server 2016版本的数据库加载驱动包jdbc

    JDBC是Java API,由Sun Microsystems(现为Oracle公司)开发,用于在Java应用程序和各种类型的数据库之间建立连接。它为开发者提供了一种标准的接口,使得无论使用哪种数据库,都能使用相同的代码进行数据访问。 ...

    mysql-connector-java-8.0.27.jar

    通过 JDBC,Java 应用程序可以连接到各种支持 JDBC 的数据库,包括 MySQL、Oracle、SQL Server 等。 MySQL Connector/J 8.0.27 版本的发布意味着它已经经过了严格的测试,兼容 MySQL 数据库的 8.0.x 版本,同时也...

    ojdbc14-10.2.0.4.0.zip

    Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection(url, username, password); // 使用连接执行数据库操作... } catch (Exception e) { e.printStackTrace();...

    oracl_ojdbc6

    Oracle JDBC驱动是Oracle数据库与Java应用程序之间通信的重要桥梁。标题中的"oracl_ojdbc6"表明我们关注的是Oracle JDBC驱动的ojdbc6版本。Oracle JDBC驱动主要有两种类型: Thin驱动和 Thick驱动,ojdbc6属于 Thin...

    ojdbc6-11.2.0.4.0-atlassian-hosted.jar驱动.rar

    例如,通过`Class.forName("oracle.jdbc.driver.OracleDriver")`加载驱动,然后使用`DriverManager.getConnection()`建立数据库连接。在Atlassian的产品中,这个驱动可能被用来实现数据的存取、报表生成、用户管理等...

Global site tag (gtag.js) - Google Analytics