从 JavaScript 连接到 Oracle 数据库

Connect to Oracle DB from JavaScript

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

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

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 也设置为环境变量。我也尝试过使用其他 drivers/connection 字符串。

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

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

如果您最终为 Oracle_Ora11gHome1 驱动程序 (wtf Oracle) 定义了一个 User/System DSN,TNS 服务名称是您的 ip:port/sid