JavaScript中连接操作Oracle数据库实例

yizhihongxing

连接操作Oracle数据库实例可以使用Node.js的包管理器npm(Node Package Manager)中的oracledb库。oracledb是由Oracle Corporation提供的官方Node.js驱动程序,它支持连接Oracle Database 11.2、12.1、12.2、18c和19c。接下来我们将详细介绍如何使用oracledb在JavaScript中连接Oracle数据库实例。

步骤一:安装oracledb

在开始之前,我们需要先安装oracledb。可以使用以下命令在npm中安装oracledb:

npm install oracledb

但是,在安装之前,需要先确保本地操作系统具有以下要求:

  • Oracle客户端库:oracledb需要Oracle客户端库才能连接到Oracle数据库。这可以是Oracle Instant Client或Oracle数据库安装的完整客户端。
  • node.js:需要安装支持async/await的Node.js版本。

步骤二:连接Oracle数据库实例

连接到Oracle数据库实例需要以下步骤:

  1. 首先,使用require()函数将oracledb库引入到JavaScript文件中。代码示例:
    const oracledb = require('oracledb');
  2. 接着,使用oracledb.getConnection()方法创建数据库连接。代码示例:
    const connection = await oracledb.getConnection({
    user: "username",
    password: "password",
    connectString: "host:port/sid"
    });

    在这个示例中,connectString是Oracle数据库实例的连接字符串,包括主机名host、端口号port、SID(System Identifier)sid。
  3. 成功连接到数据库实例后,就可以开始执行SQL查询或其他操作了。

以查询数据库中员工信息为例,以下是一个完整的示例代码:

const oracledb = require('oracledb');
const dbConfig = {
  user: "hr",
  password: "hr",
  connectString: "localhost/XE"
};

async function run() {
  let connection;

  try {
    // 创建数据库连接
    connection = await oracledb.getConnection(dbConfig);

    // 执行SQL查询语句
    const result = await connection.execute(
      `SELECT first_name, last_name
       FROM employees
       WHERE department_id = :did`,
      [50]  // 绑定查询条件参数
    );
    console.log(result.rows);
  } catch (err) {
    console.error(err);
  } finally {
    // 关闭数据库连接
    if (connection) {
      try {
        await connection.close();
      } catch (err) {
        console.error(err);
      }
    }
  }
}

run();

在这个示例中,连接Oracle数据库实例的连接字符串为"localhost/XE",用户名和密码为"hr"和"hr"。执行的SQL查询语句是查询department_id为50的员工的first_name和last_name。

步骤三:使用Promise封装

可以使用Promise封装上述代码,使其更加易读和易于维护。下面是相应的代码示例:

const oracledb = require('oracledb');
const dbConfig = {
  user: "hr",
  password: "hr",
  connectString: "localhost/XE"
};

function run(sql, params) {
  return new Promise(async (resolve, reject) => {
    let connection;

    try {
      // 创建数据库连接
      connection = await oracledb.getConnection(dbConfig);

      // 执行SQL查询语句
      const result = await connection.execute(sql, params, {autoCommit: true});
      resolve(result);
    } catch (err) {
      reject(err);
    } finally {
      // 关闭数据库连接
      if (connection) {
        try {
          await connection.close();
        } catch (err) {
          reject(err);
        }
      }
    }
  });
}

// 使用封装后的函数运行查询
run(`SELECT first_name, last_name FROM employees WHERE department_id = :did`, [50])
  .then(result => console.log(result.rows))
  .catch(err => console.log(err));

这个示例中使用了Promise,这使得我们能够更好地处理异步操作的结果,并可根据需要进行进一步的处理或响应。另外,在使用Promise时,可以将autoCommit属性设置为true,以确保所有数据库更改都以提交的方式进行。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript中连接操作Oracle数据库实例 - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • 解决MySQL Varchar 类型尾部空格的问题

    解决MySQL Varchar类型尾部空格的问题可以通过以下几个步骤来完成: 1. 确认字符集 首先需要确认数据库、表和列的字符集是否为utf8mb4。如果不是utf8mb4字符集,需要进行转换。 ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; AL…

    database 2023年5月22日
    00
  • 详解mysql DML语句的使用

    详解mysql DML语句的使用 什么是DML语句 DML代表数据操作语言。它用于对表中的数据进行操作,对数据进行插入、查询、更新和删除操作。 DML语句的常用操作 SELECT SELECT是最常用的DML语句之一。它用于从数据库中提取数据。 示例1: 查询学生表中所有的记录。 SELECT * FROM students; 示例2: 查询学生表中成绩大于…

    database 2023年5月22日
    00
  • Linux集群/分布式环境下session处理的五种策略详解

    让我来详细讲解一下Linux集群/分布式环境下session处理的五种策略。 一、背景 在Linux集群/分布式环境下,实现session一致性是面临的一大挑战。本文将介绍5种实现session一致性的策略。 二、五种策略 1. cookie cookie是一种常见的实现session的方式。应用程序会在响应中设置一个cookie标头,该cookie包含se…

    database 2023年5月22日
    00
  • 数据仓库和在线事务处理 (OLTP) 的区别

    数据仓库和在线事务处理(OLTP)是两种不同的数据处理方式。OLTP用于日常业务的数据处理,它处理的是交易数据,例如:订单、库存、客户信息、账单等。OLTP处理这些数据的速度非常快,通常需要在几毫秒内对一条数据进行读/写操作。OLTP系统的主要特点是高并发性、实时性和事务性。 数据仓库则用于维护大量历史数据,主要用于数据分析和报告生成。数据仓库存储的数据通常…

    database 2023年3月27日
    00
  • SQL 计算非Null值的个数

    计算 SQL 表中非 Null 值的个数可以使用 COUNT 函数。COUNT 函数是 SQL 中最常用的聚合函数之一,它可以用来统计表中某列的数据个数。在计算非 Null 值的个数时,需要使用 COUNT 函数结合 IS NOT NULL 运算符来实现。下面是两个实例代码: 统计某一列中非 Null 值的个数 SELECT COUNT(column_nam…

    database 2023年3月27日
    00
  • CentOS7安装mysql5.7解压缩版简明教程

    以下是“CentOS7安装mysql5.7解压缩版简明教程”的完整攻略。 环境准备 在安装mysql5.7前,需要先检查系统中是否已存在mysql相关文件,输入以下命令: whereis mysql 如果系统中已存在mysql,可先进行卸载。在卸载过程中,需要注意备份并不可轻易删除数据文件。 下载mysql5.7 进入mysql官网下载页面,选择相应的版本进…

    database 2023年5月22日
    00
  • centos8使用Docker部署Django项目的详细教程

    下面就为您详细讲解“CentOS 8使用Docker部署Django项目的详细教程”。 环境准备 CentOS 8服务器,可以使用虚拟机或者独立服务器。 Docker,安装命令为 sudo dnf install -y docker-ce。 Docker Compose,安装命令为 sudo dnf install -y docker-compose。 Dj…

    database 2023年5月22日
    00
  • MySQL ddl语句的使用

    MySQL中DDL语句是指用于定义数据库、表、列、索引等各种对象的语句,包括创建、删除、修改等操作。下面我们将从以下几个方面详细讲解MySQL DDL语句的使用。 创建数据库 创建数据库的语句如下所示: CREATE DATABASE IF NOT EXISTS mydb; 其中,IF NOT EXISTS为可选参数,如果指定则表示只有当该数据库不存在时才会…

    database 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部