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

连接操作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日

相关文章

  • Navicat Premium15连接云服务器中的数据库问题及遇到坑

    下面我将为您提供详细讲解“Navicat Premium 15连接云服务器中的数据库问题及遇到坑”的完整攻略。 前置条件 在进行Navicat Premium 15连接云服务器中的数据库之前,需要确认以下几点: 云服务器已经开启了数据库服务,例如MySQL、PostgreSQL等; 数据库服务已经设置了允许远程访问; 已经获得了数据库的访问凭证,如用户名和密…

    database 2023年5月19日
    00
  • MySQL复合索引的深入探究

    MySQL复合索引的深入探究 MySQL中复合索引(也称多列索引)是指包含多个列的索引。与单列索引相比,复合索引可以有效地优化查询效率。但是,复合索引也有一些需要注意的细节。在本文中,我们将深入探究MySQL中复合索引的优化技巧以及使用时需要注意的细节。 复合索引的使用 在使用复合索引时,首先需要明确复合索引的定义。复合索引的定义是基于列上的多个索引,可以在…

    database 2023年5月22日
    00
  • MySQL删除表数据的方法

    下面我来详细讲解一下MySQL删除表数据的方法。 方法一:DELETE语句 使用DELETE语句可以删除表中符合条件的数据。 DELETE FROM table_name WHERE condition; 其中,table_name是要删除数据的表名,condition是删除数据的条件。如果没有条件,则会删除表中所有数据。下面是一个示例: 假设我们有一个名为…

    database 2023年5月22日
    00
  • Oracle SQL语句实现数字四舍五入取整

    Oracle SQL语句提供了许多对数字进行处理的函数,包括取整函数。在实际应用中,常常需要对浮点数进行四舍五入取整。 下面是在Oracle中实现数字四舍五入取整的完整攻略: ROUND函数 ROUND函数可以将数字四舍五入到指定的位数。ROUND函数有两个参数,第一个参数是要四舍五入的数字,第二个参数是要保留的小数位数。如果第二个参数省略,则默认为0,即整…

    database 2023年5月21日
    00
  • PHP ADODB实现事务处理功能示例

    PHP ADODB是一个为PHP程序开发人员提供高级数据库抽象类库的工具集。其中之一就是实现事务处理功能的类库。以下是实现事务处理的完整攻略: 1. 安装ADODB类库 首先,我们需要安装ADODB类库。可以通过Composer进行安装,Composer是PHP的一个包管理器,可以通过它方便地安装第三方类库。在运行Composer之前,需要先安装Compos…

    database 2023年5月21日
    00
  • SQL Server数据库附加失败的解决办法

    确认文件路径是否正确 在进行数据库附加操作时,最常见的错误是文件路径不正确。在SQL Server Management Studio中,右键单击“数据库”文件夹,然后选择“附加”。在附加数据库对话框中,选择“添加”按钮,然后找到数据库文件的位置。确认文件路径是否正确是解决SQL Server数据库附加失败的第一步。 如果文件路径正确,但数据库仍然无法附加,…

    database 2023年5月21日
    00
  • mysqldump命令导入导出数据库方法与实例汇总

    mysqldump命令导入导出数据库方法与实例汇总 一、mysqldump命令概述 mysqldump是MySQL数据库备份工具,可以用来导出MySQL数据库的内容,导出的内容包括表结构、数据和数据库对象等,采用SQL语法描述。本文将讲解在Linux系统中使用mysqldump命令导入导出数据库的方法与实例,并给出几个常用的示例。 二、基本语法格式 mysq…

    database 2023年5月22日
    00
  • 深入分析MSSQL数据库中事务隔离级别和锁机制

    深入分析MSSQL数据库中事务隔离级别和锁机制 事务隔离级别 MSSQL 数据库中,事务隔离级别共有四个等级: 读未提交(Read Uncommitted) 读已提交(Read Committed) 可重复读(Repeatable Read) 串行化(Serializable) 1. 读未提交 在该级别下,一个事务可以读取另一个事务未提交的数据,这种隔离级别…

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