Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Oracle database bindings for Node.js
C++ JavaScript
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
src Corrected error: ORA-32114: Cannot perform operation on a null LOB
.gitmodules Initial implementation of db-oracle, still placeholder -> parameter b… Adding comment on LD_LIBRARY_PATH. Thanks @klmwz
db-oracle.js Fixing issue where when on error event handler was attached, node-db …
wscript Updating README

db-oracle: Oracle database bindings for Node.js

For detailed information about this and other Node.js database bindings visit the Node.js db-mysql homepage.


OCI libraries

Before proceeding with installation, you need to have the OCI instant client libraries and include files. For example, you download the library file, and the SDK file, and save them in your $HOME/Downloads directory. You would then uncompress both files, and move the generated directory to your /opt path:

$ cd $HOME/Downloads
$ unzip
$ unzip 
$ sudo mv instantclient_11_2/ /opt/instantclient

After uncompressing you will probably need to create symbolink links:

$ cd /opt/instantclient
$ sudo ln -s
$ sudo ln -s

You will also need libaio. In Arch Linux this can easily be installed with:

$ sudo pacman -S libaio

On Debian based distros:

$ sudo apt-get install libaio

Configuring OCI

Once you have the library and include files installed, and in order for the installation script to locate them properly, you'll need to set the OCI_INCLUDE_DIR and OCI_LIB_DIR environment variables. For example:

$ export OCI_INCLUDE_DIR=/opt/instantclient/sdk/include/
$ export OCI_LIB_DIR=/opt/instantclient


Once the environment variables are set, install with npm:

$ npm install db-oracle

You should also add the OCI library path to your LD_LIBRARY_PATH environment:

export LD_LIBRARY_PATH=/opt/instantclient


var oracle = require('db-oracle');
new oracle.Database({
    hostname: 'localhost',
    user: 'root',
    password: 'password',
    database: 'node'
}).connect(function(error) {
    if (error) {
        return console.log("CONNECTION ERROR: " + error);

    this.query().select('*').from('users').execute(function(error, rows) {
        if (error) {
            return console.log('ERROR: ' + error);
        console.log(rows.length + ' ROWS');


This module is released under the MIT License.

Something went wrong with that request. Please try again.