Node.js连接Oracle数据库:oracledb实战指南
发布时间: 2024-08-03 08:48:26 阅读量: 52 订阅数: 45
![Node.js连接Oracle数据库:oracledb实战指南](https://img-blog.csdnimg.cn/20210317135757407.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4NzIxODY5,size_16,color_FFFFFF,t_70)
# 1. Node.js和Oracle数据库简介**
Node.js是一个流行的JavaScript运行时环境,用于构建各种应用程序,包括Web服务器、命令行工具和网络服务。Oracle数据库是一个强大的关系数据库管理系统(RDBMS),广泛用于企业和政府组织。
本指南将介绍如何使用Node.js连接和操作Oracle数据库。我们将介绍oracledb模块,这是一个Node.js包,提供了与Oracle数据库交互所需的API。我们将涵盖安装、配置、建立连接、执行查询和更新等主题。
# 2. 使用oracledb连接Oracle数据库
### 2.1 安装和配置oracledb
要使用oracledb连接Oracle数据库,首先需要安装和配置oracledb包。
**安装oracledb**
```
npm install oracledb
```
**配置oracledb**
安装后,需要配置oracledb以连接到Oracle数据库。可以通过设置环境变量或使用`oracledb.init()`函数来配置oracledb。
**设置环境变量**
```
export ORACLE_HOME=/path/to/oracle_home
export ORACLE_SID=ORCL
export ORACLE_USER=username
export ORACLE_PASSWORD=password
```
**使用oracledb.init()函数**
```js
oracledb.init({
user: "username",
password: "password",
connectString: "localhost:1521/ORCL"
});
```
### 2.2 建立数据库连接
建立数据库连接是使用oracledb的第一步。可以使用`oracledb.getConnection()`函数来建立连接。
```js
oracledb.getConnection(function(err, connection) {
if (err) {
console.error(err.message);
return;
}
// 使用连接执行操作
connection.close(function(err) {
if (err) {
console.error(err.message);
}
});
});
```
**参数说明:**
* `err`: 如果连接失败,则为错误对象,否则为`null`。
* `connection`: 如果连接成功,则为连接对象,否则为`null`。
### 2.3 执行SQL查询和更新
使用oracledb连接到数据库后,就可以执行SQL查询和更新了。可以使用`connection.execute()`函数来执行SQL语句。
**执行查询**
```js
connection.execute("SELECT * FROM employees", function(err, result) {
if (err) {
console.error(err.message);
return;
}
// 处理查询结果
console.log(result.rows);
});
```
**执行更新**
```js
connection.execute("UPDATE employees SET salary = salary * 1.10 WHERE department_id = 10", function(err, result) {
if (err) {
console.error(err.message);
return;
}
// 处理更新结果
console.log(result.rowsAffected);
});
```
**参数说明:**
* `sql`: 要执行的SQL语句。
* `bindParams`: 可选,用于替换SQL语句中占位符的参数对象。
* `options`: 可选,用于指定查询或更新的附加选项。
* `callback`: 回调函数,用于处理查询或更新的结果。
# 3.1 查询和结果处理
#### 查询执行
`oracledb` 提供了多种执行 SQL 查询的方法:
- `execute()`:执行查询并返回一个结果集对象。
- `executeMany()`:执行多个查询,每个查询都使用不同的参数。
- `queryStream()`:执行查询并返回一个流对象,用于逐行处理结果。
```typescript
// 使用 execute() 执行查询
oracledb.execute("SELECT * FROM employees", function(err, result) {
if (err) {
console.error(err);
return;
}
console.log(result.rows);
});
// 使用 executeMany() 执行多个查询
const queries = [
"SELECT * FROM employees WHERE department_id = 10",
"SELECT * FROM employees WHERE department_id = 20",
];
oracledb.executeMany(queries, function(err, results) {
if (err) {
console.error(err);
return;
}
for (const result of results) {
console.log(result.rows);
}
});
// 使用 queryStream() 执行查询并逐行处理结果
oracledb.queryStream("SELECT * FROM employees", function(err, stream) {
if (err) {
console.error(err);
```
0
0