用户尝试通过 Oracle Forms 应用程序连接到 Oracle 数据库时收到以下错误。当我尝试使用 sqlplus 从他们的计算机连接时,我也收到同样的错误。
ORA-12514: Message 12514 not found; product=RDBMS73; facility=ORA
机器上有两个 Oracle 客户端,一个用于 Oracle 8,另一个用于 Oracle 10g。表单运行时安装在 Oracle 8 客户端的路径中。我已将路径设置为仅包含 Oracle 8,并将 ORACLE_HOME 设置为 Oracle 8 的主目录。tnsnames.ora 中的连接详细信息(两者)都是正确的。
当我尝试 tnsping 时,成功返回。
有任何想法吗?
答案1
您的错误是:“ORA-12514:TNS:监听器当前不知道连接描述符中请求的服务”。实际上,这意味着客户端能够连接服务器,但服务器的监听器不知道您尝试使用的 SID。您会收到一条不同的消息,告知客户端无法找到实际的错误文本。
出现错误的可能性有以下几种:
- 很可能 tnsnames.ora 毕竟包含错误。从其他连接正常的客户端复制它
- 原因也可能是 sqlnet.ora 中的某些设置“引导”客户端出现错误行为。从正常工作的客户端复制该设置(如果未在其他地方使用,则将其完全删除)
- 原因也可能是尝试从其他版本的目录中读取 tnsnames.ora。确保两个版本的 ...\network\admin -dir 中的 tnanames.ora 和 sqlnet.ora 相同。
- 一个罕见的变化是您在注册表中设置了 TNS_ADMIN,并且它指向除默认值 ...\network\admin 之外的其他位置。