我的代码如下:
import java.sql.*;
import java.math.*;
import java.io.*;
import java.awt.*;/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */public class OCIConnectionTest {
  public OCIConnectionTest() {
  }public static void main (String args []) throws SQLException {
// Load Oracle driver
    DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
// Connect to the local database
    Connection conn = DriverManager.getConnection
        ("jdbc:oracle:oci:@192.168.1.20:1521:ORCL", "pm_arison_it", "pm_arison_it");
// Query the employee names
    Statement stmt = conn.createStatement();
    ResultSet rset = stmt.executeQuery("SELECT ACTIVITY_NAME FROM ACTIVITY");
// Print the name out
    while (rset.next())
      System.out.println(rset.getString(1));
//close the result set, statement, and the connection
    rset.close();
    stmt.close();
    conn.close();
  }}出现错误如下:
java.lang.UnsatisfiedLinkError: make_c_state at oracle.jdbc.oci8.OCIDBAccess.make_c_state(Native Method) at oracle.jdbc.oci8.OCIDBAccess.logon(OCIDBAccess.java:309) 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(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:171) at test.jdbc.OCIConnectionTest.main(OCIConnectionTest.java:25)Exception in thread "main" 这是驱动没有装对吗,还是……

解决方案 »

  1.   

    你是用Tomcat吗?oci 驱动?怎么不用JDBC驱动?
    Oracle的JDBC驱动程序在Oracle客户端的安装目录下面有,是classes12.jar
    如果是Tomcat,classes12.jar要放到tomcat安装目录下的
    common\lib下面或者在你网页根目录下建一个lib目录,放到里面试试看。
      

  2.   

    treeClimber:
      我如果用jdbc的话,把url改成(jdbc:oracle:thin:@192.168.1.20:1521:ORCL", "xxx","xxx")就可以用了,但换成上面的就不行了,是这种写发不对吗?还是我的驱动没有装对?
    yshen:
      我用的是jboss-3.2.0RC1_tomcat-4.1.18,jdbc方式的连接我是可以使用的,只是目前需要转换成oci的方式连接!
      

  3.   

    是不是你下的JDBC驱动和你当前的操作系统不符合?猜测
      

  4.   

    url=jdbc:oracle:oci:@server_sid
    其中的server_sid是你用oracle组件net8配置的本地网络服务名,也就是说你机器上要先装上Oracle的net service组件。
      

  5.   

    使用Oracle提供的JDBC驱动连接Oracle数据库一般来说有两种方式
    thin 和 oci  楼主提到的是第二种方式目前oci 又分oci7和oci8使用oci连接Oracle数据库其实是使用安装的oracle的客户端程序Net8 Configuration Assistant和数据库连接。在
    Net8 Configuration Assistant中配置一个别名例如 ocitest 并测试和数据库连接成功
    URL "jdbc:oracle:oci8:@ocitest.world"
      

  6.   

    谢谢各位的解答!我已经解决了!闷葫芦和狂徒说的不错,我的本地net service配错了!还有就是我用的数据库是oracle9.0.1的,但client装的却是9.0.2的,按理说9.0.2应向下兼容9.0.1,但它的oci却有问题。后来我又到oracle的网站上下载了一个9.0.1的oci包,并加到路径里就可以了!唉,折腾死我了!