在nodejs中,使用node-oracle连接oracle

nodejs连接oracle并不是那么容易,我使用的是node-oracle,安装还算顺利。

这个项目的地址是

https://github.com/joeferner/node-oracle

有兴趣的同学可以去看英文的安装步骤,在这个我结合自己的经验,给大家一点建议

下载oracle instant client

这个可以去oracle的官方网站上下载,地址随版本更新,经常变化,这儿就不贴地址了。我用的64位的centos,当然下载linux-64位版本了。
再提几点值得注意的地方,11.X和12.X版本都是合适的,建议用12.X版本,本人测试通过。而且现在有几个项目在用,稳定性还可以,经得起实践考验。需要下载的文件有两个,一个叫basic,一个叫sdk,两个都需要下载,下载之后,解压到同一个文件夹,我的解压地址是
/data/app/instantclient_12_1

instantclient_12_1是解压之后,自动生成的。

配置环境变量

然后该配置环境变量了,修改/etc/profile文件,在末尾追加内容

export OCI_HOME=/data/app/instantclient_12_1
export OCI_LIB_DIR=$OCI_HOME
export OCI_INCLUDE_DIR=$OCI_HOME/sdk/include
export OCI_VERSION=12 # Optional. Default is 11.
export NLS_LANG=AMERICAN_AMERICA.UTF8

注意OCI_VERSION,我下载的大版本是12,所以就填了12.

然后使环境变量生效

source /etc/profile

创建软链接

创建.so文件的软链接

cd $OCI_LIB_DIR
ln -s libclntsh.so.12.1 libclntsh.so
ln -s libocci.so.12.1 libocci.so

安装libaio

执行

sudo yum install libaio

确保libaio模块成功安装

Add the shared object files to the ld cache

直接贴了英文,因为我觉得这样最容易理解。依次执行下面两个语句

echo '/data/app/instantclient_12_1/' | sudo tee -a /etc/ld.so.conf.d/oracle_instant_client.conf
sudo ldconfig

安装模块

终于到这一步了,安装模块

npm install --save oracle

这一步可能耗时比较久一点。


简单的使用示例

链接数据库

var oracle = require('oracle');

var config = {hostname: "192.168.11.118",port: 1521,database:"***",user: "***",password: "***"};

oracle.connect(config, function(err, conn) {
	if(err)
        {
        	console.log(err);
        }
        else {
        	console.log("connect to oracle success!");
        }
});

输出如下

connect to oracle success!

执行sql语句

var sql = "select * from admini";
conn.execute(sql, [], function(err, data){
	console.log(err);
	console.log(data);
});

返回

undefined
[ { ID: '21debebc3650469f97a6844289fb5937',
	NAME: 'admin',
	PASSWORD: '123456',
	TYPE: 0,
	VERSION: 0 } ]

一些更高级的功能,请读者参考node-oracle模块的说明文档。



你可能感兴趣的:(nodejs,c,c++)