[英]Unable to connect to Oracle 11g using node-oracle driver for Node.js: are they compatible?
我们正在尝试使用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,但是由于不赞成使用节点waf,因此不再维护该版本,并且不能使用Node 0.10.12来构建该版本。
即使使用我们可以从sqlplus64客户端和简单的3行PHP程序进行连接的相同连接信息,即使是最小的Node程序也无法连接。 我们尝试了所有不同的连接选项,例如在传递给connect函数的json中指定所有连接信息,仅指定用户,密码,并在oracle tnsnames.ora文件中引用连接字符串,甚至传递连接字符串直接到json。 我们得到两个错误之一:
错误:ORA-12154:TNS:无法解析指定的连接标识符
或者,如果我们稍微更改参数:
错误:ORA-12514:TNS:listener当前不知道连接描述符中请求的服务
我尝试连接到数据中心中的其他Oracle服务器:一台使用SID = databasename约定的服务器和一台使用SERVICE_NAME = database_servicename约定的RAC系统。 两种情况都相同。
我在这里查看了所有其他Node.js / Oracle帖子,并尝试了他们所说的一切。 启动sqlplus64用户名/密码@SID_NAME将立即连接。 我开始得出的结论是,我所使用的版本组合根本无法协同工作。 有任何想法吗?
解决方案是对尚未发布的模块使用最新补丁。 当前版本是node.oracle的0.3.1。 该版本没有TNS支持修复程序。 如果您从github上将模块的最新代码签出到新目录并在该目录中构建(该目录中的“ npm link”),然后从项目目录中执行npm link oracle,则将获得带有修复程序的新版本。 我们必须解决许多许可问题,这些问题很可能是特定于平台的,因此在此我将不做深入探讨。 我已要求该模块的作者尽快发布此修补程序版本,大概是0.3.2。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.