NodeJs连接Oracle数据库

简介: Node.js连接oracle数据库,各个平台的官方详情文档:https://github.com/oracle/node-oracledb/blob/master/INSTALL.md Win7下安装node-oracledb官方步骤:https://community.oracle.com/docs/DOC-931127系统环境:windows

Node.js连接oracle数据库,各个平台的官方详情文档:https://github.com/oracle/node-oracledb/blob/master/INSTALL.md
Win7下安装node-oracledb官方步骤:https://community.oracle.com/docs/DOC-931127

系统环境:

  • windows7 x64
  • nodejs 4.4.7
  • Python 2.7.10
  • NPM 1.3.1

操作步骤简介

原理:npm调用下载,下载成功之后交由oracle客户端解析驱动包,解析成功之后,执行完成,目录node_modules生成oracledb模块。程序运行时调用oracle sdk执行代码编译,程序运行逻辑处理,输出页面结果。

  1. 安装Visual Studio 2017 Community(如已安装请跳过此步骤,下载地址:https://www.visualstudio.com/downloads
  2. 下载并配置oracle客户端驱动包
  3. 添加环境变量
  4. 手动编译oracledb模块
  5. 测试连接是否正常

安装详情

1、下载并安装VS2017

2、下载解压需要安装包(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”文件目录不同,不会相互覆盖。

3、添加环境变量

  • 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

4、手动编译oracledb

1. 在D盘创建一个空目录:build-oraceldb
2. 进入D:\build-oracledb目录,使用GIT下载最新版的node-oracledb,地址是:https://github.com/oracle/node-oracledb
3. 进入D:\build-oracledb\node-oracledb目录,打开命令行执行命令:node-gyp configure build 以生成build目录
4. 进入D:\build-oracledb\node-oracledb\build目录,用VS2017打开binding.sln,根据提示转换为最新项目
5. 使用VS2017手动进行编译,遇到编译失败的问题使用GOOGLE来解决
6. 编译成后将node-oracledb复制到真实项目的node_modules目录中,并改名为oracledb

5、测试连接是否正常

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)});
                });
        });

});
目录
相关文章
|
4天前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
39 7
|
22天前
|
Oracle 关系型数据库 数据库
Oracle数据库基本概念理解(3)
Oracle数据库基本概念理解(3)
15 2
|
4天前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库(七):RMAN恢复管理器
【Oracle】玩转Oracle数据库(七):RMAN恢复管理器
27 4
|
3天前
|
SQL 监控 关系型数据库
PG数据库释放闲置连接
PG数据库释放闲置连接
6 0
|
4天前
|
存储 SQL Oracle
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
30 7
|
13天前
|
弹性计算 关系型数据库 MySQL
阿里云数据库服务器价格表,数据库创建、连接和使用教程
阿里云数据库使用流程包括购买和管理。选择所需数据库类型如MySQL,完成实名认证后购买,配置CPU、内存和存储。确保数据库地域与ECS相同以允许内网连接。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码连接。同一VPC内的ECS需添加至白名单以进行内网通信。参考官方文档进行详细操作。
70 3
|
14天前
|
网络协议 数据库连接 网络安全
DM数据库连接数据库时报:创建sokect连接失败
DM数据库连接数据库时报:创建sokect连接失败
12 0
|
2月前
|
JSON JavaScript 前端开发
JS服务端技术—Node.js知识点
本篇文章是我开始系统学习Node.js的一些笔记。如果文中阐述不全或不对的,多多交流。
62 0
JS服务端技术—Node.js知识点
|
3月前
|
JavaScript
node下的two.js调用one.js出现无法编译问题 Cannot find module ‘c:
node下的two.js调用one.js出现无法编译问题 Cannot find module ‘c:
47 0
|
3月前
|
JavaScript
Turndown 源码分析:五、节点相关`root-node.js`和`node.js`
Turndown 源码分析:五、节点相关`root-node.js`和`node.js`
27 0

推荐镜像

更多