访问 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
我在同一台虚拟机上安装了 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