【发布时间】:2013-12-03 21:11:53
【问题描述】:
特殊需要,我使用解压后的jar格式ojdbc6.jar。
我连接数据库oracle的代码来源是:
import java.sql.DriverManager;
import java.sql.SQLException;
....
try
{
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@x.x.x.x:1521:dev";
String login = "dev";
String password = "dev";
Class.forName(driver);
DriverManager.getConnection(url, login, password); // Error is generated by this line
}
catch (SQLException e)
{
System.err.println("error");
}
.....
当我启动程序时,我有这个异常:
Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
at oracle.jdbc.driver.T4CTTIoauthenticate.setSessionFields(T4CTTIoauthenticate.java:999)
at oracle.jdbc.driver.T4CTTIoauthenticate.<init>(T4CTTIoauthenticate.java:235)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:370)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:546)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:236)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
.......
我用
ojdbc6.jar (11.2.0.2)
JRE 1.6.0_24
Oracle 11g
数据库可访问,数据连接正确。
【问题讨论】:
-
oracle 实例的名称是什么?还要检查“lsnrctl services”的输出
-
实例名称是dev。与其他程序连接正常。
-
这并不能证明你会使用同一个实例。如何提供 lsnrctl 的输出。
-
我在一个简单的程序中使用了相同的代码,它可以工作!
-
你有没有解决这个问题?出于特殊目的重新打包 oracle 驱动程序 jar 后,我似乎面临同样的问题。
标签: oracle jdbc oracle11g ojdbc