0

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

enter code herepvtest.world =

(描述=

(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:listener 目前不知道连接描述符中请求的服务


好的

4

2 回答 2

2

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

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

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

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

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

于 2010-12-23T10:02:42.563 回答
1

我在 Oracle XE 中有这种块:

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

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

于 2010-12-23T14:14:46.923 回答