node-oracledb安装记录

这篇博客详细记录了在Windows上安装node-oracledb的过程,包括使用npm安装windows-build-tools或手动安装编译器,安装node-gyp模块,下载并配置instantclient_12_1,设置环境变量,以及如何解决编译问题和测试代码连接Oracle数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

node-oracledb安装记录

windows版本按装记录 适用于 oracledb@1.12.2
linux版本与windows的差异在于第一步,编译环境的设置,请参考node-gyp安装手册


1. 下载编译模块,有两种编译模块可用,第一种为直接使用npm安装windows-bulid-tools,第二种为手动安装编译器。

  • npm install –global –production windows-build-tools(很慢,几个小时都有可能)
  • 手动下载安装Visual C++ Build Tools与Python 2.7,然后执行npm config set msvs_version 2015(这种经过多次尝试,不是很靠普)

2.按装node-gyp模块,这是一个node编译C++工程的模块。

npm install node-gyp -g

3.下载instantclient_12_1,请下载对应系统版本,操作系统版本,oracle对应版本

官方下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index.html

instantclient-basiclite-windows.x64-12.1.0.2.0
instantclient-sdk-windows.x64-12.1.0.2.0

下载后,将两个文件解压到同一个目录。

4.设置环境变量:

Path=D:\instantclient_12_1
OCI_INC_DIR=D:\instantclient_12_1\sdk\include\
OCI_LIB_DIR=D:\instantclient_12_1\sdk\lib\msvc\

这里需要注意的是,instantclient_12_1所在目录,不可以有空格,否则会导致工程无法正常使用

5.下载oracledb模块

npm install oracledb --save

下载完成后,会自动编译一次,但编译出来的可能无法正常使用,需要重新编译。

6.重新编译

进入到node_modules/oracledb目录。执行指令

node-gyp configure
node-gyp build

测试代码:

var oracledb = require('oracledb');

// Get a non-pooled connection
oracledb.getConnection(
    {
        user: "*******",
        password: "*******",
        connectString: "IP:port/schema"
    },
    function (err, connection)
    {
        if (err)
        {
            console.error(err.message);
            return;
        }
        connection.execute("select * from channel_info t", [], function (err, result)
        {
            if (err)
            {
                console.error(err.message);
                doRelease(connection);
                return;
            }
            console.log(result.metaData);
            console.log(JSON.stringify(result.rows.map((v)=>
            {
                return result.metaData.reduce((p, key, i)=>
                {
                    p[key.name] = v[i];
                    return p;
                }, {})
            })));
            doRelease(connection);
        });
    });

// Note: connections should always be released when not needed
function doRelease(connection)
{
    connection.close(console.info);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值