最近项目中需要使用node连接oracle数据可,资料相对来说比较少,但还是找到了一部分,现在整合总结如下:
- navicat连接oracle
- oracle环境的安装
- node + oracledb测试
.
一、 navicat连接oracle
- 测试oracle是否能够联通,
- 查看
oracle的版本
(这里很重要,后续的oracle环境版本都要对应) - 使用navicat连接oracle
二、oracle环境的配置(版本号和系统位数)
环境的安装比较费时费力,刚开始查阅资料有的需要配置,有的不需要配置,我就直接在测试项目中cnpm install oracledb
,然后连接数据库,提示
【占位:图当时为截图】
现在就乖乖的按照提示安装
1. 安装Window Visual Studio
这个自己找资源吧,下载后直接默认安装。
2. 安装 Oracle instant client
- 这是 Oracle 提供的访问数据库的 C++接口,去
Oracle
官网直接注册,下载。
查找跟上述提过的oracle版本号对应的
windows 64位(我的电脑)在这里下载Version 12.2.0.1.0 中
的
instantclient-basic-windows.x64-12.2.0.1.0.zip
和instantclient-sdk-windows.x64-12.2.0.1.0.zip
;
- 下载完成将其解压到
E:\db\oracle\instantclient_12_2 文件夹中(可自定义目录)
, 由于两个zip
中的文件各不相同, 所以合并到同一个文件夹也不会发生覆盖.
- Windows环境变量设置,系统环境变量新增以下3个
- path环境变量 里加上 以下两个,注意先后顺序
三、 node + oracledb测试
进行到这一步,重要的事情说三遍:重启,重启,重启
- 首先安装
oracledb
,然后新建testOracle.js
var oracledb = require("oracledb");
(async () => {
try {
await oracledb.createPool({
_enableStats: true,
user: 'xxx',
password: 'xxxxxx',
connectString: 'x.x.x.x/xxx',
poolAlias: "ooo"
});
var connection = await oracledb.getPool('ooo').getConnection();
var result = await connection.execute('select * from users');
await connection.close();
console.log(result)
} catch (err) {
console.log(err.message)
}
})();
- 测试
node testOracle.js
查看输入结果,有结果,一切OK,
否则······
参考: