我正在尝试使用 SELECT 查询来使用 DB1 的数据库链接填充 DB2 中的表。我在 Windows 7 VM 上使用 Oracle SQL Developer。我连接到 DB2,并运行以下查询。
INSERT INTO DB_NAME.TABLE_NAME (SELECT * FROM DB_NAME.TABLE_NAME@LINK_TO_DB1);
每次,无论如何,我都会收到以下错误:
ORA-12154: TNS:could not resolve the connect identifier specified
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: 1 Column: 30
我一直在谷歌搜索并尝试不同的解决方案 2 天,但没有运气。我已经完成了以下所有操作:
- 将 PATH 环境变量设置为 C:\Oracle\instantclient_11_2
- 将 ORACLE_HOME 环境变量设置为 C:\Oracle\instantclient_11_2
- 将 TNS_ADMIN 环境变量设置为 C:\Oracle\instantclient_11_2\network\admin
- 在 C:\Oracle\instantclient_11_2\network\admin 中创建了一个带有正确连接信息的 tnsnames.ora 文件
- 将 SQL Developer(工具 > 首选项 > 数据库 > 高级)中的 Tnsnames 目录字段设置为 C:\Oracle\instantclient_11_2\network\admin
我不知道为什么这些数据库链接不起作用。有人有建议吗?