访问 SQL 服务器出现错误 - ORA-12154: TNS:could 无法解析指定的连接标识符

Accessing SQL Server gives error - ORA-12154: TNS:could not resolve the connect identifier specified

我在同一台虚拟机上安装了 SQL Server 2012 和 Oracle 11g,OS 是 Windows Server 2012。我正在尝试将 Oracle 连接到 SQL服务器。我一直保持机器不变,希望这个过程会更容易。我在 2 天前创建了机器,以便在将其应用到服务器之前测试连接过程。

以下是我采取的步骤。

1) 为 SQL 服务器创建了 ODBC 连接,名称为 sqlodbc,用户凭据为 simple/non-admin,测试成功。

2) 我的 tnsnames.ora 文件在下面

sqlodbc
(DESCRIPTION =
(ADDRESS = (PROTOCOL = tcp)(HOST = localhost)(PORT = 1433))
(CONNECT_DATA =(SID = sqlodbc))
(HS = OK)
)

[SQL 服务器端口是 1433] [我什至试过端口 1521 但同样的问题]

3) listener.ora 文件中的 SID_LIST_LISTENER 部分如下

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME=sqlodbc)
(ORACLE_HOME = C:\app\Administrator\product.2.0\dbhome_1)
(PROGRAM = hsodbc)
)
)

4) 我在 [Oracle_Home]\hs\admin 处创建了 initsqlodbc.ora 文件正在关注

HS_FDS_CONNECT_INFO = sqlodbc
HS_FDS_TRACE_LEVEL = off

5) 我创建了 public 数据库 link

create public database link sqls 
connect to "user" identified by "pass" 
using 'sqlodbc';

我浏览了这里的其他线程,但找不到解决我的问题的方法。

我正在尝试运行以下命令

select * from empnew@sqls

我哪里配置错了?或者我是否错过了任何步骤?还是我完全采取了错误的方法?

如果能得到任何帮助,我将不胜感激。

谢谢。

[注意:当我重新启动机器并尝试 运行ning 相同的命令时,我最初收到 "Database not open error" 但后来变成了 TNS 错误大约一分钟后。]

试试这个 TNSNAMES.ora 条目:

sqlodbc
(DESCRIPTION =
(ADDRESS = (PROTOCOL = tcp)(HOST = localhost)(PORT = 1433))
(CONNECT_DATA =(SERVICE_NAME = sqlodbc))
(HS = OK)
)

所以一定是语法错误导致了我的问题。

我重新创建了 ODBC 连接,重写了 tnsnames.ora 和 listener.ora 文件中的条目,并删除了所有以前的注释条目。空格、" 和括号可能会导致问题,因此请确保所有内容都已考虑在内。

可以在此位置找到我更新的 ora 文件以供将来参考。 (这是另一个关于不同错误的问题,但包含正确格式的所有信息。) Issue connecting Oracle 11g to SQL Server 2012 -- ORA-12523: TNS:listener could not find instance appropriate for the client connection