【问题标题】:Oracle ODBC TNS-less connection string (for 64-bit Excel)Oracle ODBC TNS-less 连接字符串(用于 64 位 Excel)
【发布时间】:2014-12-03 14:45:33
【问题描述】:

是否有支持无 TNS 连接(或 EZ-Connect)约定的 64 位 Oracle ODBC 驱动程序?我曾经使用“Microsoft ODBC for Oracle”,它允许无 TNS 的连接字符串,但它已经贬值了很长时间,并且没有 64 位版本(即它不适用于 64 位 Office/Excel )。

我的经验是,我组织中的用户有时会丢失或无效的 tnsnames.ora 文件。我想使用一个没有 DSN 的连接字符串,其中 not 需要 tnsnames.ora,它可以在任何安装了适当 Oracle 驱动程序的计算机上成功执行。这是我的旧 DSN-less、TNS-less 连接字符串的一个示例,它使用了已弃用的“Microsoft ODBC for Oracle”驱动程序(仍然适用于 32 位办公室的用户):

DRIVER={Microsoft ODBC for Oracle}; UID=myun; PWD=mypass;
SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)
       (HOST=myhostname)(PORT=1521))(CONNECT_DATA=(SID=mysid)));

我一直在尝试连接 Oracle in OraClient11g_home1 来自 Oracle 的 ODBC 驱动程序,但无论我如何尝试(包括 EZ_Connect)我都无法让它在没有 tnsnames.ora 的情况下工作,我经常得到这个弹出窗口,要求我指定一个服务名称:

我尝试过使用 EZ-Connect 和许多其他直接指定 Oracle 服务器 IP/主机名的变体,如下所示,但没有成功:

Driver={Oracle in OraClient11g_home1};Server=//OracleIPAddress:1521/MySID;
Uid=myUsername;Pwd=myPassword;

【问题讨论】:

    标签: excel oracle odbc connection-string tnsnames


    【解决方案1】:

    对于服务名称,您可以简单地插入整个 TNS 字符串,例如SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=myhostname)(PORT=1521))(CONNECT_DATA=(SID=mysid)));

    用双引号括起来并删除所有回车符和空格字符。

    【讨论】:

    • 是否每个最终用户都需要每次都这样做,还是只做一次会导致将详细信息保存到 excel 文件中?
    • 我认为它应该保存它
    猜你喜欢
    • 1970-01-01
    • 2015-08-28
    • 1970-01-01
    • 2019-04-14
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多