且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

NodeJs连接Oracle数据库

更新时间:2022-09-27 14:48:25

nodejs连接oracle数据库,各个平台的官方详情文档:https://github.com/oracle/node-oracledb/blob/master/INSTALL.md

我的nodejs连接Oracle的配置,运行环境:

windows7 x64

nodejs 0.12.7

Python 2.7.10

npm 2.11.3

运行原理分析

npm调用下载,下载成功之后交由oracle客户端解析驱动包,解析成功之后,执行完成,目录node_modules生成oracledb模块;

程序运行时调用oracle sdk执行代码编译,程序运行逻辑处理,输出页面结果。

实现步骤简介

1、下载解压需要安装包(2个)

2、添加环境变量

3、npm执行安装命令

4、查询demo代码

5、常见错误解决方案

 

安装详情

1、下载解压需要安装包(2个)

下载页面:http://www.oracle.com/technetwork/topics/winx64soft-089540.html

下载名称:

instantclient-basiclite-windows.x64-12.1.0.2.0.zip

instantclient-sdk-windows.x64-12.1.0.2.0.zip

把两个文件解压到“C:\oracle\instantclient_12_1”文件目录不同,不会相互覆盖。 

2、添加环境变量

OCI_INC_DIR=C:\oracle\instantclient_12_1\sdk\include

OCI_LIB_DIR=C:\oracle\instantclient_12_1\sdk\lib\msvc

 

注意!如果本机安装oracle服务器端,请把次环境变量如下地址:

OCI_INC_DIR = C:\app\Administrator\product\11.2.0\dbhome_1\oci\include

OCI_LIB_DIR = C:\app\Administrator\product\11.2.0\dbhome_1\OCI\lib\MSVC

3、npm执行安装命令

npm install oracledb

4、查询demo代码

NodeJs连接Oracle数据库
router.get('/', function (req, res, next) {

    var oracledb = require('oracledb');
    oracledb.getConnection(
        {
            user: 'username',
            password: 'password',
            connectString: '192.168.20.10:1521/ORCL'
        },
        function (err, connection) {
            if (err) {
                console.error(err.message);
                return;
            }
            connection.execute(
                "SELECT * from CMS_FIlE where content_id=:id",
                [1072],  // bind value for :id
                function (err, result) {
                    if (err) {
                        console.error(err.message);
                        return;
                    }
                    res.render('index', {title: '查询信息:' + JSON.stringify(result.rows)});
                });
        });

});
NodeJs连接Oracle数据库

执行后,展现效果,如图:

NodeJs连接Oracle数据库

5、常见错误解决方案

错误信息,如下:

The specified procedure could not be found. 

c:\xxx\oracledb.node

解放方案:服务器安装版本与环境变量的OCI_INC_DIR、OCI_LIB_DIR版本不符,设置版本为一致的即可,参照上面步骤2,配置完成之后,删除之前下载的oracledb模块,重新下载oracledb模块(npm install oracledb)即可。





本文转自王磊的博客博客园博客,原文链接:http://www.cnblogs.com/vipstone/p/4794747.html,如需转载请自行联系原作者