从 JavaScript 连接到 Oracle 数据库

我正在使用专有的自动化测试产品,该产品使用 javascript 引擎来运行测试脚本。

我正在尝试连接到服务器上的 Oracle DB 以设置测试数据/环境。我的代码使用以下连接字符串:

var dbDriverString = 'Driver={Microsoft ODBC for Oracle};Server=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=1.1.1.1)(PORT=1521))(CONNECT_DATA=(SID=dbname)));Uid=abc;Pwd=abc;';

var connectionString = dbDriverString;

if (Database.DoAttach(connectionString, '') == true)
    Tester.Assert('Connected to database.', true);

我在我的 Windows VM 上为 Microsoft Windows (x64) 客户端安装了 Oracle Database 11g 第 2 版客户端 (11.2.0.1.0)。我无法连接到数据库。我不断收到以下错误:

[Microsoft][ODBC Driver Manager] Driver's SQLAllocHandle failed on SQL_HANDLE_ENV failed。

我已经正确设置了所有路径。 ORACLE_HOME 已设置,ORACLE_HOME/bin 也设置为环境变量。我也尝试过使用其他驱动程序/连接字符串。

stack overflow Connect to Oracle DB from JavaScript
原文答案
author avatar

接受的答案

主要问题是应用程序架构和驱动程序架构之间的不匹配。以下是从头开始在新的虚拟机上完成的:

  1. 应用程序和驱动程序架构需要匹配,即 32 位或 64 位。
  2. Win 7 amd64 上的控制面板 -> 管理工具 -> ODBC 源将显示 64 位可用驱动程序。
  3. 要检查安装了什么 32 位,运行 -> cmd -> c:WindowsSysWow64odbcad32.exe。

如果您最终为 Oracle_Ora11gHome1 驱动程序 (wtf Oracle) 定义了用户/系统 DSN,则 TNS 服务名称为 yourip:port/sid


答案: