今天我们来谈谈Node.js Oracle。在Node.js中,我们可以通过使用oracledb模块来连接Oracle数据库。oracledb模块支持Oracle 10g及以上数据库版本,支持异步和同步API。下面我为大家演示一下如何使用Node.js来连接Oracle数据库。
首先,我们需要在本地安装Oracle客户端,并确保在Node.js中使用oracledb模块时,能找到相关的头文件和库文件。其中,头文件需要手动配置,可以通过以下命令来安装oracledb模块:
npm install oracledb接下来,我们来看一下oracledb模块中的一些核心API。 1. 连接数据库:
const oracledb = require('oracledb'); oracledb.getConnection( { user : "hr", password : "welcome", connectString : "localhost/orclpdb1" }, function(err, connection) { if (err) { console.error(err.message); return; } console.log('Connection was successful!'); connection.close( function(err) { if (err) { console.error(err.message); return; } }); });上面的代码用于连接数据库,其中需要填写连接数据库的用户名、密码以及连接字符串。如果连接成功,就会输出“Connection was successful!”的信息,否则会输出错误信息。 2. 执行SQL语句:
const oracledb = require('oracledb'); oracledb.getConnection( { user : "hr", password : "welcome", connectString : "localhost/orclpdb1" }, function(err, connection) { if (err) { console.error(err.message); return; } connection.execute( "SELECT first_name, last_name " + "FROM employees " + "WHERE department_id = :id", [60], function(err, result) { if (err) { console.error(err.message); return; } console.log(result.rows); connection.close( function(err) { if (err) { console.error(err.message); return; } }); }); });上面的代码用于执行SQL语句,其中需要填写SQL语句以及查询参数。如果查询成功,就会输出查询结果,否则会输出错误信息。 3. 多行执行SQL语句:
const oracledb = require('oracledb'); oracledb.getConnection( { user : "hr", password : "welcome", connectString : "localhost/orclpdb1" }, function(err, connection) { if (err) { console.error(err.message); return; } connection.execute( "BEGIN " + " INSERT INTO employees (employee_id, first_name, last_name, email, hire_date, job_id) " + " VALUES (:id1, :name1, :name2, :email, SYSDATE, 'IT_PROG'); " + " INSERT INTO employees (employee_id, first_name, last_name, email, hire_date, job_id) " + " VALUES (:id2, :name3, :name4, :email, SYSDATE, 'IT_PROG'); " + "END;", { id1: 7777, name1: 'Tom', name2: 'Smith', id2: 8888, name3: 'John', name4: 'Doe', email: 'test@example.com' }, { autoCommit: true }, function(err, result) { if (err) { console.error(err.message); return; } console.log('Rows inserted: ' + result.rowsAffected); connection.close( function(err) { if (err) { console.error(err.message); return; } }); }); });上面的代码用于执行多行SQL语句,其中需要填写SQL语句以及查询参数。如果插入成功,就会输出插入行数,否则会输出错误信息。 总之,使用Node.js连接Oracle数据库需要掌握oracledb模块的API,以及正确配置本地环境。本文所展示的API只是冰山一角,Node.js连接Oracle数据库还有更多的API和用法,读者可自行探索。