【问题标题】:ORA-12154 error when using Oracle Instant Client使用 Oracle Instant Client 时出现 ORA-12154 错误
【发布时间】:2013-06-12 08:00:51
【问题描述】:

我在尝试使用 Windows 7 32 位上的 Oracle Instant 客户端设置在 ODBC DSN 上进行测试连接时遇到此错误。我让它在另一台装有 Vista 32 位的机器上工作。

信息:
1.目录结构为:c:\oracle\instantclient_11_2。 Instantclient_11_2 目录中的基本客户端和即时客户端文件,就像在工作机器上一样。
2. 系统路径中的 c:\oracle 和 c:\oracle\instantclient_11_2
3. 将 TNS_ADMIN 添加到系统路径并指向 c:\oracle
4. tnsnames.ora 从工作机复制到 c:\oracle
5. sqlnet.ora 位于 c:\oracle。工作副本只有“TCP.CONNECT_TIMEOUT=5”作为条目,但我尝试添加:NAMES.DIRECTORY_PATH= (LDAP, TNSNAMES, HOSTNAME) 当它不工作时
6. 我可以telnet到oracle服务器和1521端口(在tnsnames.ora中定义)。

还有什么要检查的吗?

【问题讨论】:

  • 您用于 DSN 的连接标识符是什么;例如,它是 TNS 别名还是 Easy Connect 字符串? sqlnet.ora 现在是否与工作机器上的匹配?
  • -我只是在 ODBC 管理员中设置了一个 DSN,在 tnsnames.ora 中指定了 TNS 服务名称。 sqlnet.ora 是一样的——正如我在上面所说的那样,工作的只有一行。
  • 这里是 tnsnames.ora 文件内容,我在 DSN 中指定 MIADM:ABCDM = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = 172.99.99.99) (PORT = 1521) ) ) (CONNECT_DATA = (SERVICE_NAME = MIADM) ) )

标签: oracle odbc connectivity tnsnames


【解决方案1】:

如果您的 tnsnames.ora 与您在评论中所说的一样,那么您在 DSN 中使用了错误的值。您需要使用 DSN 中的 TNS 别名,即ABCDM。您不能直接引用服务名称,除非您碰巧也将其用作别名。

【讨论】:

  • 好的,这行得通。奇怪的是,我在旧机器上使用“服务名称”--MIADM。我在旧机器上检查了 tnsnames.ora 的其他副本,以防我遗漏了什么。没有意义。为什么会这样?
  • @user2281976 - 我并没有真正使用 ODBC,但你确定两台机器都使用相同的 DSN 驱动程序,并且旧机器实际上使用的是 TNS 别名 - 它不是t 指定要直接连接的主机和端口,在这种情况下,它将使用服务名称MIADM?我想知道设置它的人是否有类似的问题并最终绕过了tnsnames.ora。否则,恐怕我不知道 *8-)
  • 我是设置另一个的人...没有绕过 tnsnames.ora。我通常使用 JDBC,但在这种情况下必须使用 ODBC....:-(
【解决方案2】:

我们发现调用它的应用程序安装在 Program Files (x86) 目录中时会返回该错误。在该文件夹外重新安装程序将清除错误。不知道为什么 Oracle Instant Client 不能很好地安装那里的程序。

【讨论】:

    猜你喜欢
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    • 2017-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-16
    • 2019-04-01
    相关资源
    最近更新 更多