这是我创建的第一个 Java 应用程序(使用 Eclipse IDE)和第二个基于 Oracle 的应用程序(我多年来一直是 .NET/MSSQL 人)。我在 .NET 中编写的第一个 Oracle 应用程序没有任何问题,我正在尝试连接到同一台服务器。
- 我已经安装了:
- 'Java 2 平台,企业版 1.4 SDK'
- 'Java DB `10.5.3.0' - 'Java(TM) 6 更新 21
- 'Java(TM) SE 开发工具包 6 更新 21
- 'Oracle IRM 客户端' (11g)
- Oracle 11g 第 2 版 JDBC 驱动程序(ojdbc6.jar)
我的代码非常简单。这里是:
OracleDataSource ods = new OracleDataSource();
ods.setURL("jdbc:oracle:oci:@");
ods.setUser("username");
ods.setPassword("password");
ods.setServerName("servername");
ods.setPortNumber(1549);
ods.setServiceName("foo.myservice.com");
Connection conn = ods.getConnection();
我得到以下异常:
线程“主”java.sql.SQLException 中的异常:ORA-12560:TNS:协议适配器错误
at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:737)
at oracle.jdbc.driver.T2CConnection.logon(T2CConnection.java:401)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531)
at oracle.jdbc.driver.T2CConnection.<init>(T2CConnection.java:148)
at oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:53)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)
at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:280)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:207)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:157)
at Select.GetScalar(Select.java:47)
at Job.Run(Job.java:20)
at Main.main(Main.java:19)
我已经用谷歌搜索了这个。我尝试在 tnsnames.ora 文件中添加一个“TNS 条目”。我尝试将 '##NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)' 添加到 sqlnet.ora 文件中。我尝试了其他各种方法,但没有任何效果。
以前有没有人经历过这种情况并且对如何使它起作用有任何线索?我使用了错误的版本吗?服务器是远程的(我没有在本地安装 Oracle 服务器,只是客户端)。也许我有错误版本的 Java SDK 或错误版本的 JDBC .jar 文件?我只需要连接到 Oracle 并运行一个简单的查询!非常感谢您的帮助。