我的系统中只安装了 Oracle 8i,工作正常。我可以使用 driverManager 使用 jdbc 成功连接到它,但是当我使用 OracleDataSource 连接到它时会出现问题。它说 Oracle 不可用。我想我在提供 sid 时做错了什么。
我的部分代码 -
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 条目(它的一部分) -
ORACLE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = guddus-comp)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = oracle)
)
)
listener.ora 条目(它的一部分) -
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)
)
)
在我的代码中,我尝试了 oracle,orcl 也代替了 ORCL0,但是除了 ORCL0 之外的任何东西都会给出 Io 异常:连接被拒绝,而提供 ORCL0 会给出异常 - ORA-01034:ORACLE 不可用......所以我猜 ORCL0 是正确的,但是我预计会有其他问题。