列出远程 Oracle 服务名称

K. *_*ord 2 oracle

我正在编写的一些软件需要查询一个 oracle 数据库——DBA 离开了一段时间,所以我所要做的就是从另一个连接到同一个数据库的应用程序中获取一些源代码(我什至不确定它是当前的)。java 连接字符串如下所示:

jdbc:oracle:thin:@101.010.101.010:1521:srip

jdbc 文档告诉我的意思是服务器地址/端口是 101.010.101.010:1521 并且“服务名称”是 srip。我在 tnsnames.ora 中创建了一个相应的条目,如下所示:

mydb=
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 101.010.101.010)(PORT = 1521))
    (CONNECT_DATA =
     (SERVICE_NAME = srip)
    )
  )
Run Code Online (Sandbox Code Playgroud)

在 ODBC 配置对话框中,oracle 客户端找到“mydb”条目并将其列在“TNS 服务名称”下。当我尝试“测试连接”时,它立即返回错误 ORA-12514:TNS:listener 目前不知道连接描述符中请求的服务。我想这意味着 SERVICE_NAME 条目是错误的,也许它已被更改。有没有办法找出我没有任何其他访问权限的远程服务器上可用的服务名称?

Ben*_*oit 5

是的,您可以执行此类操作,但是您需要在数据库服务器上获得授权才能知道侦听器密码(如果已设置)。

在此之前,您可以:

  1. 编辑您的 tns.ora 并替换“SERVICE_NAME”而不是“SID”。
  2. 检查 sqlnet.ora 文件中是否存在不正确的“DEFAULT_DOMAIN”指令。