What is oracledb?
The oracledb npm package is a Node.js driver for Oracle Database, providing a way to connect to Oracle databases, execute SQL queries, and manage database transactions. It supports various features such as connection pooling, data types, and advanced Oracle Database features.
What are oracledb's main functionalities?
Connecting to Oracle Database
This code demonstrates how to establish a connection to an Oracle Database using the oracledb package. It includes error handling and ensures the connection is closed after use.
const oracledb = require('oracledb');
async function run() {
let connection;
try {
connection = await oracledb.getConnection({
user: 'your_username',
password: 'your_password',
connectString: 'localhost/XEPDB1'
});
console.log('Connection was successful!');
} catch (err) {
console.error(err);
} finally {
if (connection) {
try {
await connection.close();
} catch (err) {
console.error(err);
}
}
}
}
run();
Executing SQL Queries
This code sample shows how to execute a SQL query using the oracledb package. It retrieves rows from the 'employees' table where the department_id is 101.
const oracledb = require('oracledb');
async function run() {
let connection;
try {
connection = await oracledb.getConnection({
user: 'your_username',
password: 'your_password',
connectString: 'localhost/XEPDB1'
});
const result = await connection.execute(
`SELECT * FROM employees WHERE department_id = :id`,
[101] // bind value for :id
);
console.log(result.rows);
} catch (err) {
console.error(err);
} finally {
if (connection) {
try {
await connection.close();
} catch (err) {
console.error(err);
}
}
}
}
run();
Using Connection Pooling
This code demonstrates how to use connection pooling with the oracledb package. It creates a pool of connections, retrieves a connection from the pool, executes a query, and then closes the connection and the pool.
const oracledb = require('oracledb');
async function run() {
let pool;
try {
pool = await oracledb.createPool({
user: 'your_username',
password: 'your_password',
connectString: 'localhost/XEPDB1',
poolMin: 2,
poolMax: 10,
poolIncrement: 1
});
const connection = await pool.getConnection();
const result = await connection.execute(`SELECT * FROM employees`);
console.log(result.rows);
await connection.close();
} catch (err) {
console.error(err);
} finally {
if (pool) {
try {
await pool.close(0);
} catch (err) {
console.error(err);
}
}
}
}
run();
Other packages similar to oracledb
mysql
The mysql package is a Node.js driver for MySQL databases. It provides similar functionalities to oracledb, such as connecting to the database, executing queries, and managing transactions. However, it is specifically designed for MySQL databases and does not support Oracle-specific features.
pg
The pg package is a Node.js driver for PostgreSQL databases. Like oracledb, it allows you to connect to the database, execute SQL queries, and manage transactions. It is tailored for PostgreSQL and includes features specific to that database system, but it does not support Oracle Database features.
mssql
The mssql package is a Node.js driver for Microsoft SQL Server. It offers functionalities similar to oracledb, such as database connections, query execution, and transaction management. It is designed for use with SQL Server and includes features specific to that database, but it does not support Oracle Database features.
node-oracledb version 1.5
1. About node-oracledb
The node-oracledb add-on for Node.js powers high performance Oracle Database applications.
Node-oracledb connects Node.js 0.10, 0.12, 4.2 LTS and 5 to Oracle
Database.
This is an open source project maintained by Oracle Corp.
The node-oracledb home page is on the
Oracle Technology Network.
Node-oracledb supports:
We are actively working on supporting the best Oracle Database
features, and on functionality requests from
users involved in the project.
A simple query example:
var oracledb = require('oracledb');
oracledb.getConnection(
{
user : "hr",
password : "welcome",
connectString : "localhost/XE"
},
function(err, connection)
{
if (err) { console.error(err.message); return; }
connection.execute(
"SELECT department_id, department_name " +
"FROM departments " +
"WHERE manager_id < :id",
[110],
function(err, result)
{
if (err) { console.error(err.message); return; }
console.log(result.rows);
});
});
With Oracle's sample HR schema, the output is:
[ [ 60, 'IT' ], [ 90, 'Executive' ], [ 100, 'Finance' ] ]
2. Examples
There are examples in the examples directory.
3. Installation
The basic install steps are:
- Install the small, free Oracle Instant Client libraries if your database is remote. Or use a locally installed database such as the free Oracle XE release.
- Run
npm install oracledb
to install from the NPM registry.
See INSTALL for details.
4. Documentation
See Documentation for the Oracle Database Node.js Add-on.
5. Changes
See CHANGELOG
Note there were two small, backward-compatibility breaking attribute name changes in node-oracledb 0.5.
6. Testsuite
To run the included testsuite see test/README.
7. Contributing
Node-oracledb is an open source project. See
CONTRIBUTING
for details.
Oracle gratefully acknowledges the contributions to node-oracledb that have been made by the community.
8. License
Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
You may not use the identified files except in compliance with the Apache
License, Version 2.0 (the "License.")
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.