客户端安装了,OCI驱动也安装了,本地服务测试通过。连接后出错,下面是输出的信息:at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at oracle.jdbc.oci8.OCIDBAccess.logon(OCIDBAccess.java:294)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:287)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:442)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:321)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at database.Database.Connect(Database.java:42)
at roi.ConnetionStringEditor.TestDatasource(ConnetionStringEditor.java:183)
at roi.ConnetionStringEditor.actionPerformed(ConnetionStringEditor.java:122)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: no ocijdbc9 in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)

解决方案 »

  1.   

    no ocijdbc9 in java.library.path网上搜索资料,问题原因:
    oracle下的ocijdbc9是一个dll,环境变量没有加载。解决办法:
    1.在preferences-->myeclipse enterprise workbench-->servers-->tomcat-->tomcat 6.x-->jdk的optional java vm arguments参数中添加-Djava.library.path=D:\oracle\ora92\bin
    (oracle客户端bin目录)2.在preferences-->myeclipse enterprise workbench-->servers-->tomcat-->tomcat 6.x-->paths的apend to library path参数中使用add dir添加oracle的bin目录地址即可。
      

  2.   

    我用的是Oracle10g阿,bin下只有ocijdbc10.dll,怎么让我找ocijdbc9.dll阿
      

  3.   

    换了驱动,thin模式连接已经成功,oci还不是不行,这次错误信息是:
    Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: oracle.jdbc.driver.T2CConnection.t2cGetCharSet([CI[CI[CII[SLoracle/jdbc/driver/GetCharSetError;)S
    at oracle.jdbc.driver.T2CConnection.t2cGetCharSet(Native Method)
    at oracle.jdbc.driver.T2CConnection.getCharSetIds(T2CConnection.java:2801)
    at oracle.jdbc.driver.T2CConnection.logon(T2CConnection.java:300)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:344)
    at oracle.jdbc.driver.T2CConnection.<init>(T2CConnection.java:136)
    at oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:79)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:545)
      

  4.   

    好像符集是有点问题,我用PL/SQL连接后看到的表名中的汉子都是'????'. 谁知道怎么回事?怎么解决?
      

  5.   

    环境变量里面加上 变量名:NLS_LANG 变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
      

  6.   

    还是JDBC14.jar的版本文题。Oracle管理也真够混乱的,JDBC14.jar造了好几个版本,除了文件大小不同外什么也看不出来。