我们正在尝试使用 node.js 应用程序从 Ubuntu 12.04.1 LTS 服务器连接到 Oracle 11g 服务器(企业版 11.2.0.1.0 - 64 位生产)。我们正在运行 Node v0.10.12 和nearinfinity node-oracle 模块 0.3.1。stackoverflow 上还有其他帖子讨论了其他节点 oracle 模块 node-db-oracle,但该版本不再维护,并且由于 node-waf 已被弃用,因此无法使用 Node 0.10.12 构建。
即使使用我们可以从 sqlplus64 客户端和简单的 3 行 PHP 程序连接的相同连接信息,即使是最小的 Node 程序也不会连接。我们尝试了所有不同的连接选项,例如在传递给连接函数的 json 中指定所有连接信息,仅指定用户、密码,并在 oracle tnsnames.ora 文件中引用连接字符串,甚至传递连接字符串直接转json。我们得到以下两个错误之一:
错误:ORA-12154:TNS:无法解析指定的连接标识符
或者如果我们稍微改变一下参数:
错误:ORA-12514:TNS:监听器当前不知道连接描述符中请求的服务
我尝试连接到我们数据中心中的不同 Oracle 服务器:一台使用 SID=databasename 约定的单一服务器和使用 SERVICE_NAME=database_servicename 约定的 RAC 系统。同样的故事两种情况。
我在这里查看了所有其他 Node.js/Oracle 帖子,并尝试了他们所说的一切。启动 sqlplus64 用户名/密码@SID_NAME 立即连接。我开始得出结论,我正在使用的版本组合根本不能一起工作。有任何想法吗?