nodejs连接oracle比较复杂,需要配置各种环境,踩了无数个坑,总结一下经验
笔者的系统为win10 64位,所需的的包为oracledb
,笔者的版本号为V2.3
配置环境
配置oci.dll
首先去oracle官网下载instantclient,笔者下的是12.2版本
下载后安装,并检查下windows的环境变量,在下面的系统变量中,需要OCI_INC_DIR,OCI_LIB_DIR,OCI_VERSION,以及path中的文件夹路径
首先配置OCI_INC_DIR,OCI_LIB_DIR,OCI_VERSION,以笔者的路径为例
然后配置path中的文件夹路径,以笔者的路径为例
下载visual studio 2015
并不知道这一步有什么用,但官方说明是使用的vc2015,所以我就下载了visual studio 2015。读者可自行测试不下载直接安装,若不通过,再下载即可。
使用代理
因为GFW,导致github并不完整,所以如果在安装oracledb包,有报错信息NJS-054或者404错误,则应该是被墙。具体原理此处不做介绍,请各位访客自行解决GFW的问题
安装oracledb
npm i oracledb
连接oracle
一个简单的demo代码:
const oracledb = require('oracledb');
oracledb.getConnection(
{
user: "", //用户名
password: "", //密码
connectString: "", //数据库地址
privilege: oracledb.SYSDBA, //登陆角色,此处为SYSDBA
},
function (err, connection){
if (err) {
console.error(err.message);
return;
};
connection.execute(
this.query_statement,
[], // bind value for :id
function (err, result) {
if (err) {
console.error(err.message);
doRelease(connection);
return;
};
//打印表头
console.log(result.metaData);
//打印表中数据
console.log(result.rows);
doRelease(connection);
});
});
function doRelease(connection) {
connection.close(
function(err) {
if (err)
console.error(err.message);
});
}
因为查询是异步操作,所以如果要对数据进行操作,则需要以同步的方式或者回调来进行。同步方式参考我的另一篇文章:JavaScript异步编程与解决方案
参考资料
NodeJs连接Oracle数据库
nodejs 使用官方oracledb库连接数据库 教程
oracledb的API
版权属于:谁把年华错落成诗 所有,转载请注明出处!
本文链接:https://blog.pomears.com/archives/23.html
如果博客部分链接出现404,请留言或者联系博主修复。