node.js操作oracle数据库流程整理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wojiushiwo945you/article/details/87280109

背景

node.js操作mysql数据库相当容易,但是操作oracledb就有些复杂,需要依赖oracle客户端,本文记录在CentOS7操作系统下使用node.js操作oracle数据库的过程。

资源下载

1、node.js解压包:node-v10.15.1-linux-x64.tar.xz
http://nodejs.cn/download/(中文版没有Linux64的包)
https://nodejs.org/en/download/(英文版有Linux64位的包)

2、oracle11客户端:instantclient-basic-linux.x64-11.2.0.4.0.zip
https://download.csdn.net/download/yang_xu_1987/9984899

3、开发工具sdk:instantclient-sdk-linux.x64-11.2.0.4.0.zip
https://download.csdn.net/download/yang_xu_1987/9984984

oracle官网下载地址:https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
有个弊端就是需要进行帐号注册,而且页面反应极其慢。

node.js安装

1、上传node-v10.15.1-linux-x64.tar.xz到opt目录。
2、解压:tar -xvf node-v10.15.1-linux-x64.tar.xz
3、重命名:mv node-v10.15.1-linux-x64 nodejs

上传oracle的客户端和开发工具

1、本地解压instantclient-basic-linux.x64-11.2.0.4.0.zip和instantclient-sdk-linux.x64-11.2.0.4.0.zip后,得到一个instantclient_11_2的文件夹,其目录结构为:
在这里插入图片描述

2、将instantclient_11_2目录上传到Linux系统的/opt/目录下。

配置环境变量

1、编辑/etc/profile文件,添加如下系统变量:

export NODE_PATH=/opt/nodejsexport PATH=$NODE_PATH/bin:$PATH
export LD_LIBRARY_PATH=/opt/instantclient_11_2
export OCI_LIB_DIR=/opt/instantclient_11_2
export OCI_INC_DIR=/opt/instantclient_11_2/sdk/include

2、source /etc/profile使配置生效。

3、查看node的版本node -v
在这里插入图片描述

安装oracledb模块

npm install oracledb --save
在这里插入图片描述

编写oracle连接代码

1、mkdir nodetest
2、touch oracledb.js
3、vi oracledb.js添加如下内容:

```var oracledb = require('oracledb'); var config = {   user:'dd',  //用户名   password:'ddd',  //密码   //IP:数据库IP地址,PORT:数据库端口,SCHEMA:数据库名称   connectString : "IP:1521/orcl" }; 
oracledb.getConnection(
  config,
  function(err, connection)
  {
    if (err) {
      console.error(err.message);
      return;
    }
  //查询某表十条数据测试,注意替换你的表名
    connection.execute("SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM mytable) A WHERE ROWNUM <= 10 ) WHERE RN >= 0",
      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);
      }
    });
}

(上述代码粘贴来源:https://www.cnblogs.com/rysinal/p/7779055.html)

4、执行代码node oracledb.js

5、测试结果
由于没有可用的oracle数据库连接,该脚本运行报连接超时错误:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wojiushiwo945you/article/details/87280109