mariano / node-db-oracle

Oracle database bindings for Node.js
http://nodejsdb.org
142 stars 34 forks source link

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.

INSTALL

OCI libraries

Before proceeding with installation, you need to have the OCI instant client libraries and include files. For example, you download the instantclient-basic-linux.x64-11.2.0.3.0.zip library file, and the instantclient-sdk-linux.x64-11.2.0.3.0.zip 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 instantclient-basic-linux.x64-11.2.0.3.0.zip
$ unzip instantclient-sdk-linux.x64-11.2.0.3.0.zip 
$ sudo mv instantclient_11_2/ /opt/instantclient

After uncompressing you will probably need to create symbolink links:

$ cd /opt/instantclient
$ sudo ln -s libocci.so.11.1 libocci.so
$ sudo ln -s libclntsh.so.11.1 libclntsh.so

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

Install

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

QUICK START

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');
    });
});

LICENSE

This module is released under the MIT License.