使用Widows创建Oracle ODBC DSN。输入端口号

时间:2010-12-23 09:05:44

标签: windows oracle odbc ora-12514

我在c:\ Oracle \ product \ 11.1.0 \ network \ ADMIN \ TNSNAMES.ORA文件中有以下条目。

enter code here pvtest.world =

(DESCRIPTION =

(ADDRESS_LIST =

  (ADDRESS = (PROTOCOL = TCP)(HOST = xxxx.xxx.xxx)(PORT = 1521))

)

(CONNECT_DATA =

  (SID = pvtest)

  (SERVER = DEDICATED)

)

我可以使用TOAD成功连接。现在,当我尝试创建新的ODBC DSN时,它不允许我这样做。如何在TNS服务名称中指定端口号?

enter code here收到以下错误:---------------------------

测试连接

无法连接 SQLSTATE = S1000 [Oracle] [ODBC] [Ora] ORA-12514:TNS:监听器当前不知道连接描述符中请求的服务


确定

2 个答案:

答案 0 :(得分:2)

当您说可以与TOAD连接时,您是否可以在ODBC连接失败的情况下这样做?如果您可以连接到客户端PC上的任何工具,那么显然另一端的监听器知道该服务,因此您必须怀疑您的结束。可能有一个客户端工具试图在不同的位置到达PVTEST。

如果一个客户端工具可以连接而另一个不能连接,我首先会确认两个客户端都使用相同的tnsnames.ora文件。搜索您的客户端,看看是否还有其他tnsnames.ora文件,这些文件会暗示其他ORACLE_HOMES(Google如果您不知道它是什么)。

从命令行执行TNSPING并查看它是否到达主机。它还将讲述连接细节。

在TOAD中检查连接详细信息并确保它使用tnsnames连接,如果是,则使用tnsnames。

检查您的客户端是否设置了环境变量TNS_ADMIN。

答案 1 :(得分:1)

我对Oracle XE有这种阻止:

XE =   (DESCRIPTION =     (ADDRESS =(PROTOCOL = TCP)(HOST = test.acme.org)(PORT = 1521))     (CONNECT_DATA =       (SERVER = DEDICATED)       (SERVICE_NAME = XE)     )   )

如果您将其与您的定义进行比较,而不是存在“SERVICE_NAME”参数。