posts - 33, comments - 46, trackbacks - 0, articles - 2

          JDBC驅動補丁與連接Oracle的一些錯誤

          Posted on 2008-06-03 12:46 在路上... 閱讀(5860) 評論(0)  編輯  收藏 所屬分類: JAVA相關
          開發環境一直使用jdbc14.jar "Oracle JDBC Driver version - 9.0.2.0.0"版本連接Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 服務器,突然今天不能連接了,報錯誤如下:
          java.sql.SQLException: 不能在 UTF8 和 UCS2 之間轉換: failUTF8Conv
                  at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:
          134)
                  at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:
          179)
                  at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:
          1130)
                  at oracle.jdbc.dbaccess.DBConversion.failUTF8Conv(DBConversion.java:
          2261
          )
                  at oracle.jdbc.dbaccess.DBConversion.utf8BytesToJavaChars(DBConversion.j
          ava:
          2061)
                  at oracle.jdbc.dbaccess.DBConversion.utf8BytesToString(DBConversion.java
          :
          1976)
                  at oracle.jdbc.dbaccess.DBConversion.CharBytesToString(DBConversion.java
          :
          543)
                  at oracle.jdbc.ttc7.TTIoer.processWarning(TTIoer.java:
          334)
                  at oracle.jdbc.ttc7.O3log.receive2nd(O3log.java:
          523)
                  at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:
          278)
                  at oracle.jdbc.driver.OracleConnection.
          <init>(OracleConnection.java:346)

                  at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.ja
          va:
          468)
                  at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:
          314)
                  at java.sql.DriverManager.getConnection(Unknown Source)
                  at java.sql.DriverManager.getConnection(Unknown Source)
                  at JDBC.main(JDBC.java:
          9)
          然后更換為Oracle  11g的驅動,可以正常連接了,但是會顯示下面異常
          javax.management.MalformedObjectNameException: Invalid character '
          '
           in value part of property
          at javax.management.ObjectName.construct(ObjectName.java:529)
          at javax.management.ObjectName.
          <init>(ObjectName.java:1304)
          at oracle.jdbc.driver.OracleDriver.registerMBeans(OracleDriver.java:
          303)
          at oracle.jdbc.driver.OracleDriver$
          1.run(OracleDriver.java:213)
          at java.security.AccessController.doPrivileged(Native Method)
          at oracle.jdbc.driver.OracleDriver.
          <clinit>(OracleDriver.java:209)
          at java.lang.Class.forName0(Native Method)
          at java.lang.Class.forName(Class.java:
          164)
          采用9i驅動還碰到下面錯誤
          java.sql.SQLException: 違反協議
                  at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:
          134)
                  at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:
          179)
                  at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:
          1160)
                  at oracle.jdbc.ttc7.O3log.receive2nd(O3log.java:
          548)
                  at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:
          279)
                  at oracle.jdbc.driver.OracleConnection.
          <init>(OracleConnection.java:371)

                  at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.ja
          va:
          551)
                  at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:
          351)
                  at java.sql.DriverManager.getConnection(Unknown Source)
                  at java.sql.DriverManager.getConnection(Unknown Source)
          • 最終查詢資料,發現還是jdbc驅動問題,原因因該是與bug有關,因此從新從otn.oracle.com下載驅動升級解決問題。
            ojdbc6.jar的驅動版本可以運行java -jar ojdbc6.jar查看,如果是Oracle 11.1.0.6.0-Production+ JDBC 4.0 compiled with JDK6,帶+號就是補丁版本,否則是沒有打補丁的,仍然可能出錯。
          • 我遇到的請況,采用10.2.0.4的jdbc驅動就沒有問題了
          • oracle jdbc驅動下載地址如下:

          Oracle Database 11g Release 1 (11.1.0.6) drivers
          Oracle Database 10g Release 2 (10.2.0.4), (10.2.0.3), (10.2.0.2), (10.2.0.1.0) drivers
          Oracle Database 10g (10.1.0.5), (10.1.0.4), (10.1.0.2.0) drivers
          Oracle9i Release 2 (9.2.0.8), (9.2.0.5), (9.2.0.4), (9.2.0.3), & (9.2.0.1) drivers
          Oracle9i Release 1 (9.0.1.4) & (9.0.1) drivers
          Oracle8i Release 2 (8.1.7)

          主站蜘蛛池模板: 秦皇岛市| 闵行区| 罗江县| 高尔夫| 梅州市| 梅河口市| 泸州市| 新绛县| 富阳市| 茶陵县| 巧家县| 曲水县| 邻水| 南丹县| 自贡市| 林州市| 舞阳县| 锦州市| 承德县| 班戈县| 桂林市| 保康县| 友谊县| 西宁市| 尉氏县| 麻阳| 德保县| 当涂县| 屯留县| 河源市| 青海省| 岳池县| 临夏县| 永新县| 河池市| 会理县| 乌鲁木齐市| 宜良县| 永善县| 临夏市| 青河县|