首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Connect oracle DataBase TNS

Java Connect oracle DataBase TNS
EN

Stack Overflow用户
提问于 2019-02-26 19:52:26
回答 2查看 395关注 0票数 0

我想连接Oracle DB。

我的.ora:

代码语言:javascript
复制
AUTACSRV120000, AUTACSRV120000.world =
    (DESCRIPTION = 
        (ADDRESS_LIST = 
            (FAILOVER = ON)
            (LOAD_BALANCE = OFF)
            (ADDRESS = (PROTOCOL = TCP)(HOST = infra-dbaas01.noe.rct.fr)(PORT = 1521))
            (ADDRESS = (PROTOCOL = TCP)(HOST = infra-dbaas02.pcy.rct.fr)(PORT = 1521))
        )
        (LOAD_BALANCE = YES)
        (CONNECT_DATA = 
            (SERVER = DEDICATED)
            (SERVICE_NAME = AUTAC_fes.dbaas.rct.fr)
        )

当我想要连接时,我使用

代码语言:javascript
复制
jdbc:oracle:thin:@AUTACSRV120000, AUTACSRV120000.world

结果:

代码语言:javascript
复制
Exception in thread "main" java.sql.SQLRecoverableException: Erreur d'E/S: Inval
id connection string format, a valid format is: "host:port:sid"

但是如果我将.ora编辑为

代码语言:javascript
复制
AUTACSRV120000 =
    (DESCRIPTION = 
        (ADDRESS_LIST = 
            (FAILOVER = ON)
            (LOAD_BALANCE = OFF)
            (ADDRESS = (PROTOCOL = TCP)(HOST = infra-dbaas01.noe.rct.fr)(PORT = 1521))
            (ADDRESS = (PROTOCOL = TCP)(HOST = infra-dbaas02.pcy.rct.fr)(PORT = 1521))
        )
        (LOAD_BALANCE = YES)
        (CONNECT_DATA = 
            (SERVER = DEDICATED)
            (SERVICE_NAME = AUTAC_fes.dbaas.rct.fr)
        )

并使用

代码语言:javascript
复制
jdbc:oracle:thin:@AUTACSRV120000

连接正常

我没有权利离开文件编辑。

EN

回答 2

Stack Overflow用户

发布于 2019-10-11 02:56:00

可能有两种选择: 1)使用类似于此处(Java JDBC - How to connect to Oracle using Service Name instead of SID)的服务名称进行连接,但我只能使用一台主机来测试这一点。因此,在您的示例中: DB将是: jdbc:oracle:thin:@//infra-dbaas01.noe.rct.fr:1522/AUTAC_fes.dbaas.rct.fr

2)我们可以使用这里提到的连接描述中的TNS条目:https://docs.oracle.com/cd/B28359_01/java.111/b31224/jdbcthin.htm

代码语言:javascript
复制
    String connString = "jdbc:oracle:thin:@(description=(address_list=
   (address=(protocol=tcp)(port=1521)(host=prodHost)))
(connect_data=(INSTANCE_NAME=ORCL)))";
  OracleDataSource ods = new OracleDataSource();

ods.setURL(connString);
ods.setUser("scott");
ods.setPassword("tiger");
Connection conn = ods.getConnection();
票数 0
EN

Stack Overflow用户

发布于 2019-10-18 03:13:55

JDBC Thin connection仅支持一个TNS别名。因此,您不能提供"jdbc:oracle:thin:@AUTACSRV120000,AUTACSRV120000.world“。您应该只尝试使用一个TNS别名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54884936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档