gpt4 book ai didi

sql - ORA-12154 : TNS:could not resolve the connect identifier specified on a table

转载 作者:搜寻专家 更新时间:2023-10-30 20:55:02 25 4
gpt4 key购买 nike

我在访问外部数据库中的一个表时遇到了 TNS 错误。但是当我尝试通过相同的外部数据库链接访问其他表时,它没有任何错误。

可能是什么原因造成的?

SELECT *
FROM tablename@db;

错误:

12154. 00000 -  "TNS:could not resolve the connect identifier specified"
*Cause: A connection to a database or other service was requested using
a connect identifier, and the connect identifier specified could not
be resolved into a connect descriptor using one of the naming methods
configured. For example, if the type of connect identifier used was a
net service name then the net service name could not be found in a
naming method repository, or the repository could not be
located or reached.
*Action:
- If you are using local naming (TNSNAMES.ORA file):
- Make sure that "TNSNAMES" is listed as one of the values of the
NAMES.DIRECTORY_PATH parameter in the Oracle Net profile
(SQLNET.ORA)
- Verify that a TNSNAMES.ORA file exists and is in the proper
directory and is accessible.
- Check that the net service name used as the connect identifier
exists in the TNSNAMES.ORA file.
- Make sure there are no syntax errors anywhere in the TNSNAMES.ORA
file. Look for unmatched parentheses or stray characters. Errors
in a TNSNAMES.ORA file may make it unusable.
- If you are using directory naming:
- Verify that "LDAP" is listed as one of the values of the
NAMES.DIRETORY_PATH parameter in the Oracle Net profile
(SQLNET.ORA).
- Verify that the LDAP directory server is up and that it is
accessible.
- Verify that the net service name or database name used as the
connect identifier is configured in the directory.
- Verify that the default context being used is correct by
specifying a fully qualified net service name or a full LDAP DN
as the connect identifier
- If you are using easy connect naming:
- Verify that "EZCONNECT" is listed as one of the values of the
NAMES.DIRETORY_PATH parameter in the Oracle Net profile
(SQLNET.ORA).
- Make sure the host, port and service name specified
are correct.
- Try enclosing the connect identifier in quote marks.
Error at Line: 2 Column: 6

最佳答案

首先从您的 Oracle 实例所在的主机尝试 tnsping 在您的 db_link 配置中使用的 oracle 实例。

tnsping SID/TNS Alias

如果你得到类似的东西

TNS-03505: Failed to resolve name

你需要检查你的 tnsnames.ora 文件,看看你是否有一个 tns 别名指向 tablename@db 所在的数据库实例。

  • 如果没有条目添加一个并再次测试。

  • 还要确保不需要域,为此您需要验证/检查位于 TNS_ADMIN 位置的 sqlnet.ora。

  • 另一件事,如果你在 Windows 上,请确保你正在使用正确的客户端,也许您的某些 KEYS 配置不当注册

  • -tnsping 解决后测试你的 db_link:

    从 global_name@db_link 中选择 *;

您的数据库名称应该会出现!我希望这对您有所帮助

关于sql - ORA-12154 : TNS:could not resolve the connect identifier specified on a table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25799764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com