NodeJS 是一款基于 Chrome V8 引擎的 JavaScript 运行环境,可以让 JavaScript 运行在服务端,使得 JavaScript 在服务端也能具备高效、易扩展、跨平台等特性。目前,NodeJS 和 Oracle 数据库的应用非常广泛,下面就简单介绍 NodeJS 连接 Oracle 数据库的方法。
在使用 NodeJS 连接 Oracle 数据库之前,需要安装 Node-oracledb,这是一款 Oracle 官方提供的适用于 NodeJS 的驱动程序,提供了高效的连接数据库和执行 SQL 语句的方法。Node-oracledb 是提供 NodeJS 连接 Oracle 数据库的可靠选择。使用 Node-oracledb 前,必须在本地安装 Oracle Instant Client 或 Oracle Database,也可以在 cloud 上通过 DBCS 服务使用 Oracle 数据库。下面是一个代码示例:
const oracledb = require('oracledb'); oracledb.outFormat = oracledb.OUT_FORMAT_OBJECT; (async function() { let connection; try { connection = await oracledb.getConnection( { user : "hr", password : "welcome", connectString : "localhost/XE" }); const result = await connection.execute(`SELECT first_name, last_name FROM employees WHERE department_id = :id`, [50]); console.log(result.rows); } catch (err) { console.error(err); } finally { if (connection) { try { await connection.close(); } catch (err) { console.error(err); } } } })();
上述代码进行了一个名为“hr”的 Oracle 数据库的链接,连接的用户名为“hr”,密码为“welcome”,连接字符串为“localhost/XE”,并运行了一个 SQL 语句,要求查询 department_id 为 50 的 employee 部门的 first_name 和 last_name 字段。执行结果将以下面的形式输出:
[ { FIRST_NAME: 'David', LAST_NAME: 'Austin' }, { FIRST_NAME: 'Sundar', LAST_NAME: 'Ande' }, { FIRST_NAME: 'Amit', LAST_NAME: 'Banda' }, { FIRST_NAME: 'Elizabeth', LAST_NAME: 'Bates' }, { FIRST_NAME: 'Curtis', LAST_NAME: 'Davies' }, { FIRST_NAME: 'Nanette', LAST_NAME: 'Cambrault' }, { FIRST_NAME: 'Oliver', LAST_NAME: 'Tuvault' }, { FIRST_NAME: 'Janette', LAST_NAME: 'King' } ]
另外,需要注意的是,如果 Oracle 数据库采用了加密协议,需要在初始化时设置 NODE_TLS_REJECT_UNAUTHORIZED=0,否则连接时会报错。还可以设置与线程、连接、缓存和 LOB 配置相关的值,以优化性能和调整吞吐量。
总的来说,使用 NodeJS 连接 Oracle 数据库非常简单,只需安装 Node-oracledb 这款驱动程序,就可以迅速高效地操作 Oracle 数据库了。