将oracle 8i与数据源方法连接时出现异常
我的系统中只安装了Oracle8i,工作正常。我可以使用jdbc和driverManager成功地连接到它,但问题发生在我使用OracleDataSource连接到它时。它说甲骨文不可用。我想我在提供sid时做错了什么 我代码的一部分-将oracle 8i与数据源方法连接时出现异常,oracle,datasource,oracle8i,ora-01034,Oracle,Datasource,Oracle8i,Ora 01034,我的系统中只安装了Oracle8i,工作正常。我可以使用jdbc和driverManager成功地连接到它,但问题发生在我使用OracleDataSource连接到它时。它说甲骨文不可用。我想我在提供sid时做错了什么 我代码的一部分- OracleDataSource ds = new OracleDataSource(); ds.setDriverType("thin"); ds.setServerName("localhost");
OracleDataSource ds = new OracleDataSource();
ds.setDriverType("thin");
ds.setServerName("localhost");
ds.setPortNumber(1521);
ds.setDatabaseName("ORCL0"); // sid
ds.setUser("scott");
ds.setPassword("tiger");
Connection conn = ds.getConnection();
tnsnames.ora条目(部分)-
listener.ora条目(它的一部分)-
在我的代码中,我尝试了oracle,orcl也代替了ORCL0,但ORCL0以外的任何东西都会导致Io异常:连接被拒绝,而提供ORCL0则会导致异常-ORA-01034:oracle不可用。。。。所以我猜ORCL0是正确的,但我预计还有其他问题 你确定你使用的是8i吗?这是十年来都不支持的东西?您发布的listener.ora(假设它来自服务器)指向一个目录,这意味着您正在使用Oracle 9.2,该目录仍然不受支持,但至少是最近的。如果您使用的是8i,那么您使用的是什么版本的8i?您使用的是什么版本的JDK和JDBC驱动程序?较新版本的Oracle客户端软件最终会放弃对较旧版本Oracle的支持。Justin,我正在使用Oracle 8i 8.1.5版(自述文件)。我也不确定它是否会连接到8i,这就是我提出问题的原因。我正在使用EclipseIndigo、JavaSE1.6和ojdbc14-1.jar。是否支持?您使用的JDBC驱动程序版本是什么?您是否正在使用11.2.0.3 JDBC驱动程序、10.2.0.5 JDBC驱动程序等。?我不知道有哪个版本的JDBC驱动程序ojdbc14.jar与1.6JVM兼容。据我所知,1.6JVM驱动程序都称为ojdbc6.jar。因此,在我们开始研究Oracle版本之前,您使用的JVM版本和您使用的JDBC驱动程序版本之间似乎不匹配。在ojdbc14.jar中,驱动程序版本是9.0.2.0.0,我想它不支持1.6 JVM。我卸载了oracle 8i,因为保留它毫无意义。。正在安装Oracle 11g XE。。。将尝试同样的事情,并在这篇文章之后更新。非常感谢Justin的帮助Hi Justin,Iv现在安装了Oracle11g,其余的一切都几乎没有变化。正如我推测的那样,odbc14.jar(驱动程序9.0.2.0.0)支持Java1.6,因此一切正常。问题可能是Oracle 8i不支持较新的jdbc驱动程序。(或者至少可能b 8i din支持Java 1.6)
ORACLE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = guddus-comp)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = oracle)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\ora92)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = oracle)
(ORACLE_HOME = C:\oracle\ora92)
(SID_NAME = ORCL0)
)
(SID_DESC =
(GLOBAL_DBNAME = dbabhi)
(ORACLE_HOME = C:\oracle\ora92)
(SID_NAME = DBABHI)
)
)