excel - Oracle ODBC TNS-less 连接字符串(适用于 64 位 Excel)

标签 excel oracle odbc connection-string tnsnames

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

我的经验是,我组织中的用户有时会丢失或无效的 tnsnames.ora 文件。我想使用无 DSN 的连接字符串,因为它 需要 tnsnames.ora,它可以在安装了正确 Oracle 驱动程序的任何计算机上成功执行。这是我旧的无 DSN、无 TNS 连接字符串的示例,它使用已弃用的“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)));

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

enter image description here

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

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

最佳答案

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

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

关于excel - Oracle ODBC TNS-less 连接字符串(适用于 64 位 Excel),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26265397/

相关文章:

Java:使用引用游标作为 OUT 调用存储过程时结果集为空

sql - 在哪里可以找到有关 ODBC SQL 方言/语法的信息,包括。内置函数/运算符?

xml - 如何从 Oracle 表中检索特定的 XML 节点?

java - 如何从连接表中为每个主键项仅选择一条记录?

sql - 将 SQL 调优向导与 sp_prepexec 语句结合使用

sql - Access ODBC 无法从超过 255 列的 SQL 表中提取

excel - 在 VBA 中转到 <行号>

excel - 在 Delphi 中检测 Excel 的版本

Python - 更改数据框的标题颜色并将其保存到excel文件

excel - 给定一个单元格范围,如果该行中的列 A 单元格大于相应列 B 单元格中的值,则计算该行