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日

相关文章

  • mysql数据库replace、regexp的用法

    下面是关于”mysql数据库replace、regexp的用法”的详细讲解。 Replace函数用法 Replace函数可以用于将指定字符串中的某个子字符串替换成另一个字符串。它的用法如下: REPLACE(str,old,new) 其中,str表示需要被替换的原字符串,old表示需要被替换的子字符串,new表示要替换成的新字符串。 例如,假设我们有一个st…

    database 2023年5月21日
    00
  • C#实现连接SQL Server2012数据库并执行SQL语句的方法

    C# 是一种跨平台、面向对象的编程语言,可用于开发各种类型的应用程序,包括与 SQL Server 等数据库系统的交互。本文将详细介绍 C# 实现连接 SQL Server2012 数据库并执行 SQL 语句的方法。 连接 SQL Server2012 数据库 使用 C# 连接 SQL Server2012 数据库,需要使用 System.Data.SqlC…

    database 2023年5月21日
    00
  • Mac下安装redis5.0 与命令

    参考链接:https://blog.csdn.net/zyp1376308302/article/details/84257606 参开链接2:https://www.cnblogs.com/guanbin-529/p/9180840.html 略有闲暇,准备深入下Redis 下载与安装: 1. 官网http://redis.io/ 下载最新的稳定版本,这里…

    Redis 2023年4月11日
    00
  • 如何使用Python连接和操作MongoDB数据库?

    在Python中,可以使用pymongo模块连接和操作MongoDB数据库。以下是Python使用pymongo模块连接和操作MongoDB数据库的完整攻略,包括连接MongoDB数据库、插入数据、查询数据、和删除数据等操作。 连接MongoDB数据库 在Python中,可以使用pymongo模块连接MongoDB数据库。以下是连接MongoDB数据库的基本…

    python 2023年5月12日
    00
  • PostgreSQL 存储过程的进阶讲解(含游标、错误处理、自定义函数、事务)

    PostgreSQL 存储过程的进阶讲解 在本文中,我们将深入学习 PostgreSQL 存储过程的进阶功能,包括游标、错误处理、自定义函数和事务。在此之前,我们建议您已经对 PostgreSQL 存储过程的基础知识有一定的了解。 游标 游标是一种遍历 数据库 中结果集的机制。在某些情况下,它比单条数据检索更有效。下面是一个简单的示例,展示如何使用游标在 P…

    database 2023年5月21日
    00
  • SQL注入的四种防御方法总结

    下面我将为你详细讲解SQL注入的四种防御方法总结,并附上相关的示例说明。 SQL注入的四种防御方法总结 1. 数据库层面过滤 使用最新版的数据库系统,并开启安全设置,可以防范大部分的攻击。此外,也可以在SQL语句中使用预编译语句,例如PDO中的prepare()函数和execute()函数,来预防SQL注入攻击。 示例1: // 原始的SQL语句 $sql …

    database 2023年5月21日
    00
  • Zabbix 监控PHP-FTPM、Tomcat、Redis应用

    一、zabbix 监控 PHP-FPM应用实战Nginx+PHP-FPM是目前最流行的LNMP架构,在基于PHP开发的系统下,对这些系统性能的监控,主要是关注PHP-FPM的运行状态,那么什么是PHP-FPM呢,我们说PHP-FPM(FastCGI Process Manager:FastCGI进程管理器)是一个PHP FastCGI管理器,它提供了更好的P…

    Redis 2023年4月11日
    00
  • SQL Server触发器及触发器中的事务学习

    SQL Server触发器及触发器中的事务学习 什么是触发器 触发器是一种在SQL Server数据库中用于监视特定事件(例如INSERT、UPDATE或DELETE)的特殊类型的存储过程。当这些事件中的任意一个发生时,触发器都会立即响应,它可以用于实现对数据库的一些自动化操作,比如数据审计、数据同步、数据约束等等。 触发器的基础语法 创建一个名为[触发器名…

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