【问题标题】:Connecting Oracle remote database using instantclient_11_2 and VBScript [duplicate]使用 Instantclient_11_2 和 VBScript 连接 Oracle 远程数据库 [重复]
【发布时间】:2020-12-07 17:38:23
【问题描述】:

操作系统是windows 10 64bit

我已经在instantclient_11_2 上配置了新用户DSN,使用instantclient_11_2 中的驱动程序Oracle 连接远程Oracle 数据库

连接成功

现在我尝试连接 VBscript 文件,但返回错误

用于 ODBC 驱动程序的 Microsoft OLE DB 提供程序错误“80004005”

[Microsoft][ODBC Driver Manager]未找到数据源名称且未指定默认驱动程序。

如何解决这个问题?

   Set cn = CreateObject("ADODB.Connection")  
   cn.Open "Driver={Oracle in instantclient_11_2}; " & _
           "CONNECTSTRING=(DESCRIPTION=" & _
           "(ADDRESS=(PROTOCOL=TCP)" & _
           "(HOST=XXX)(PORT=1521))" & _
           "(CONNECT_DATA=(SERVICE_NAME=XXX))); uid=XXX;pwd=XX;"
  
   cn.CommandTimeout = 10000
   
   cn.Close()
   Set cn = Nothing  

【问题讨论】:

  • 是否在 32 位模式下运行 wscript.execscript.exe,即 %systemroot%\SysWOW64\wscript.exe?如果您只是调用wscript.exe,它将默认为 64 位版本。

标签: oracle vbscript


【解决方案1】:

Setting up an Oracle ODBC Driver and Data Source

Last version 64-bit ODAC 12.2c Release 1 (12.2.0.1.1) for Windows x64

Oracle in OraClient11g_home1 connection strings

   Set cn = CreateObject("ADODB.Connection")  
   cn.Open "Driver={Oracle in OraClient12home1}; " & _
           "CONNECTSTRING=(DESCRIPTION=" & _
           "(ADDRESS=(PROTOCOL=TCP)" & _
           "(HOST=XXX)(PORT=1521))" & _
           "(CONNECT_DATA=(SERVICE_NAME=XXX))); uid=XXX;pwd=XX;"
  
   cn.CommandTimeout = 10000
   
   cn.Close()
   Set cn = Nothing  

【讨论】:

  • 我不确定这如何回答这个问题,OP 解释说他们使用odbcad32.exe 的正确架构版本设置了他们的 DSN,所以他们的问题不在于连接。也许您建议不要使用 DSN 并对连接进行硬编码,但这并不能解释为什么他们无法访问 DSN。
  • 非常感谢 Hamamelis 先生,现在开始工作了!
猜你喜欢
  • 1970-01-01
  • 2012-07-16
  • 1970-01-01
  • 1970-01-01
  • 2016-09-28
  • 2012-01-24
  • 2012-01-20
  • 1970-01-01
相关资源
最近更新 更多