无法从Java ORA12560连接到Oracle DB:TNS:协议适配器错误
这是我正在创建的第一个Java应用程序(使用EclipseIDE)和第二个基于Oracle的应用程序(我多年来一直是.NET/MSSQL专家)。我写的第一个Oracle应用程序。NET没有任何问题,我正在尝试连接到同一台服务器
- 我已安装:
- “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 Release 2 JDBC Drivers(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();
我得到以下例外:
线程“main”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)
我已经用谷歌破解了这个。。我已尝试将“TNS”条目添加到tnsnames。ora文件'。我试着加上“##的名字。目录_PATH=(TNSNAMES,EZCONNECT)“”到sqlnet。ora文件。我试过其他各种方法,但都不管用
以前是否有人经历过这种情况,并且对如何使其发挥作用有任何线索??我使用了错误的版本吗?服务器是远程的(我没有在本地安装Oracle服务器,只有客户端)。可能我有错误版本的JavaSDK或错误版本的JDBC。jar文件??我只需要连接到Oracle并运行一个简单的查询!谢谢你的帮助
# 1 楼答案
如果可以的话,尝试使用type IV JDBC驱动程序而不是OCI。精简url如下所示:
我会尝试这样的代码(填写驱动程序、URL、用户名和密码的默认值):
# 2 楼答案
如果你想要简单的东西,你应该尝试使用瘦客户端而不是OCI客户端。 不要忘记包含正确的jar(对于Java 5,ojdbc5.jar;对于Java 6,ojdbc6.jar)
# 3 楼答案
您指定的ServiceName是否是您尝试连接到的Oracle实例的服务名称?你确定端口正确吗