JDBC-无法使用服务名称连接到Oracle

时间:2019-07-30 04:47:24

标签: java oracle jdbc connection-string service-name

我一直在尝试使用具有以下语法的JDBC thin 驱动程序连接到此Oracle数据库:

var URL = "jdbc:oracle:thin:@//16.161.286.56:1522/Service_Name"; 
var USER = "user";
var PASS = "password";
var conn = Jdbc.getConnection(URL, USER, PASS);

执行此命令时,我会一直保持相同的响应:

很抱歉,发生服务器错误。请稍等,然后重试。 [87a99af]

有人会知道我在做什么错吗?


此外,当我将IP地址更改为其“字符串版本”时:

var URL = "jdbc:oracle:thin:@//mydomain.com:1522/Service_Name";

然后我得到错误响应:

  

无法建立数据库连接。检查连接字符串,用户名和密码。

这对我来说没有意义,因为这两个表达式应该等效...

2 个答案:

答案 0 :(得分:0)

使用服务名称的Oracle JDBC连接的实际格式为:

@//host_name:port_number/service_name

确保服务名称正确。 您可以尝试使用TNSNameListener

jdbc:oracle:thin:@(description=(address=(host=<HOSTADDRESS>)(protocol=tcp)(port=<PORT>))(connect_data=(service_name=<SERVICENAME>)(server=<SHARED>)))

TNSNameListener文件位置:

<ORACLE_HOME>\network\admin\tnsnames.ora
example: /home/oracle/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora

答案 1 :(得分:0)

我不确定Jdbc是哪个类。看看JDBCUrlSample.javaDataSourceSample.java