oracle中连接字符串和服务名称之间的区别?

时间:2014-02-17 13:32:40

标签: database oracle

oracle中的服务名称和连接字符串之间是否有任何区别。

据我所知,服务名称是oracle中的主机字符串?

例如,如果连接字符串是user / user123 @ user_string。

然后是user_string是服务名称或可互换的主机字符串。

这是对的吗?

然后我的另一个问题是除了用户名和密码之外还需要什么主机字符串?

2 个答案:

答案 0 :(得分:1)

服务名称只是数据库实例。

用户字符串是tnsnames.ora

中的条目

应该使用tnsnames.ora中的用户字符串来定义他们的数据库实例,以便成功连接oracle数据库。

例如:user/passwd@database 您应该在数据库下的tnsnames.ora中定义您的oracle实例 语法应该类似于

database=
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = databaseinstance)
    )
  )

答案 1 :(得分:0)

如果您不想使用tnsnames.ora文件,也可以使用此文件:

user/user123@"(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=hostname)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=databaseinstance)))"

我假设只有在连接字符串包含空格字符时才需要引号。