我怎么才能用OCI的方式访问Oracle数据库。
我用的oracle806,装了Oracle Call Interface、JDBC、JAVA runtime Environemnt这三个东东。按文档说这样就可以了。
语句是这样
DriverManager.registerDriver( new oracle.jdbc.driver.OracleDriver() );
OraDb = DriverManager.getConnection ("jdbc:oracle:oci8:@webora", "lishu", "lishu");
错误信息是
java.lang.UnsatisfiedLinkError: make_c_state
at oracle.jdbc.oci7.OCIDBAccess.make_c_state(Native Method)
at oracle.jdbc.oci7.OCIDBAccess.logon(OCIDBAccess.java:189)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:135)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:209)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:183)
at java.sql.DriverManager.getConnection(DriverManager.java:517)
at java.sql.DriverManager.getConnection(DriverManager.java:177)
at _jsp._jspbbs._new_0bbs_0w__jsp._jspService(/jspbbs/conn.jsp:28)
at com.caucho.jsp.JavaPage.service(JavaPage.java:89)
at com.caucho.jsp.JavaPage.subservice(JavaPage.java:83)
at com.caucho.jsp.Page.service(Page.java:334)
at com.caucho.server.http.Invocation.service(Invocation.java:255)
at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:201)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:217)
at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:151)
at com.caucho.server.TcpConnection.run(TcpConnection.java:140)
at java.lang.Thread.run(Thread.java:484)
"webora"是用在sqlplus里用的主机名,换成thin的方式就没问题了。
OraDb = DriverManager.getConnection ("jdbc:oracle:thin:@192.168.1.14:1521:ORCL", "lishu", "lishu");