我正在编写的某些软件需要查询 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)
)
)
在 ODBC 配置对话框中,Oracle 客户端找到“mydb”条目并将其列在“TNS 服务名称”下。当我尝试“测试连接”时,它立即返回错误 ORA-12514:TNS:监听器当前不知道连接描述符中请求的服务。我猜这意味着 SERVICE_NAME 条目是错误的,也许它已被更改。有没有办法找出我无法访问的远程服务器上有哪些可用的服务名称?
答案1
是的,您可以做这种事情,但您需要在数据库服务器上获得授权,或者知道监听器密码(如果已设置)。
在此之前,您可以:
- 编辑您的 tns.ora 并用“SERVICE_NAME”替换“SID”。
- 检查您的 sqlnet.ora 文件中是否存在错误的“DEFAULT_DOMAIN”指令。