您现在的位置是: 首页 » 网页代码 » nodejs如何连接数据库oracle
网页代码

nodejs如何连接数据库oracle

网站优化小编一月 11, 2020 9人已围观

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。

网站运营中栏目排名优化技巧

nodejs连接数据库oracle的方法:

安装前提

本机要预先安装gcc4.7及以上版本(编译node需要使用)。

安装nodejs

假设把node的安装包下载在/opt目录。

cd /opt
# 解压
tar -Jxf node-v6.9.4-linux-x64.tar.xz
# 设置环境变量
vi /etc/profile
#编辑文件内如如下:
export NODEHOME=/opt/node-v7.9.0-linux-x64
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$NODEHOME/bin
#保存退出

#重启用profile文件
source /etc/profile
# 检测node安装情况
[root@localhost testoracle]# node -v
v7.9.0
[root@localhost testoracle]# npm -v
4.2.0

安装Oracle Instant Client

从oralce官网下载 'Basic' and 'SDK',假如下载位置在/opt/oracle。

cd /opt/oracle
unzip instantclient-basic-linux.x64-12.2.0.1.0.zip
unzip instantclient-sdk-linux.x64-12.2.0.1.0.zip
mv instantclient_12_2 instantclient
cd instantclient
ln -s libclntsh.so.12.1 libclntsh.so
# 设置环境变量
vi /etc/profile
#编辑内容如下
export LD_LIBRARY_PATH=/opt/oracle/instantclient:$LD_LIBRARY_PATH
export OCI_LIB_DIR=/opt/oracle/instantclient
export OCI_INC_DIR=/opt/oracle/instantclient/sdk/include
#保存退出

#重启用profile文件
source /etc/profile

安装oracledb

之前安装都已经完成了,这一步会非常简单。

[root@localhost opt]# mkdir oracletest
[root@localhost opt]# cd oracletest
[root@localhost oracletest]# npm install oracledb

> oracledb@1.13.1 install /opt/oracletest/node_modules/oracledb
> node-gyp rebuild

gyp WARN EACCES user "root" does not have permission to access the dev dir"/root/.node-gyp/7.9.0"
gyp WARN EACCES attempting to reinstall using temporary dev dir"/opt/aa/node_modules/oracledb/.node-gyp"
make: Entering directory `/opt/aa/node_modules/oracledb/build'
  CXX(target) Release/obj.target/oracledb/src/njs/src/njsOracle.o
  CXX(target) Release/obj.target/oracledb/src/njs/src/njsPool.o
  CXX(target) Release/obj.target/oracledb/src/njs/src/njsConnection.o
  CXX(target) Release/obj.target/oracledb/src/njs/src/njsResultSet.o
  CXX(target) Release/obj.target/oracledb/src/njs/src/njsMessages.o
  CXX(target) Release/obj.target/oracledb/src/njs/src/njsIntLob.o
  CXX(target) Release/obj.target/oracledb/src/dpi/src/dpiEnv.o
  CXX(target) Release/obj.target/oracledb/src/dpi/src/dpiEnvImpl.o
  CXX(target) Release/obj.target/oracledb/src/dpi/src/dpiException.o
  CXX(target) Release/obj.target/oracledb/src/dpi/src/dpiExceptionImpl.o
  CXX(target) Release/obj.target/oracledb/src/dpi/src/dpiConnImpl.o
  CXX(target) Release/obj.target/oracledb/src/dpi/src/dpiDateTimeArrayImpl.o
  CXX(target) Release/obj.target/oracledb/src/dpi/src/dpiPoolImpl.o
  CXX(target) Release/obj.target/oracledb/src/dpi/src/dpiStmtImpl.o
  CXX(target) Release/obj.target/oracledb/src/dpi/src/dpiUtils.o
  CXX(target) Release/obj.target/oracledb/src/dpi/src/dpiLob.o
  CXX(target) Release/obj.target/oracledb/src/dpi/src/dpiCommon.o
  SOLINK_MODULE(target) Release/obj.target/oracledb.node
  COPY Release/oracledb.node
make: Leaving directory `/opt/oracletest/node_modules/oracledb/build'
/opt/oracletest
└─┬ oracledb@1.13.1 
  └── nan@2.5.1 

npm WARN enoent ENOENT: no such file or directory, open '/opt/oracletest/package.json'
npm WARN oracletest No description
npm WARN oracletest No repository field.
npm WARN oracletest No README data
npm WARN oracletest No license field.

测试

在/opt/oracletest中新建一个测试的js文件,用于访问oracle数据库。

var oracledb = require('oracledb');
var config = {
  user:'mytest',
  password:'password',
  connectString : "192.168.0.107:1521/orcl"};oracledb.getConnection(
  config,
  function(err, connection)
  {
    if (err) {
      console.error(err.message);
      return;
    }
    connection.execute("SELECT * from aa",
      function(err, result)
      {
        if (err) {
          console.error(err.message);
          doRelease(connection);
          return;
        }
        //打印返回的表结构
        console.log(result.metaData);
        //打印返回的行数据
        console.log(result.rows);    
      });
  });function doRelease(connection){
  connection.close(
    function(err) {
      if (err) {
        console.error(err.message);
      }
    });}

然后执行 node xx.js查看结果

文章评论

    发表评论

    电子邮件地址不会被公开。

站点信息
  • 站点运行:265天
  • 网站程序:Wordpress
  • 主题模板:bvseo
  • 文章统计:3944 条
  • 文章评论:114 条
  • 微信公众号:扫描二维码,关注我们