खोज…


Oracle DB से कनेक्ट करें

एक बहुत ही आसान तरीका एक Oracle डाटाबेस से कनेक्ट करने का उपयोग करना है oracledb मॉड्यूल। यह मॉड्यूल आपके Node.js ऐप और Oracle सर्वर के बीच संबंध को संभालता है। आप इसे किसी भी अन्य मॉड्यूल की तरह स्थापित कर सकते हैं:

npm install oracledb

अब आपको एक ORACLE कनेक्शन बनाना होगा, जिसे आप बाद में क्वेरी कर सकते हैं।

const oracledb = require('oracledb');

oracledb.getConnection(
  {
    user          : "oli",
    password      : "password",
    connectString : "ORACLE_DEV_DB_TNS_NAME"
  },
  connExecute
);

ConnectString "ORACLE_DEV_DB_TNA_NAME" उसी निर्देशिका में tnsnames.org फ़ाइल में या जहाँ आपका oracle झटपट क्लाइंट स्थापित है, में रह सकता है।

यदि आपके पास कोई ओरेकल इंस्टेंट क्लाइंट नहीं है, तो आप विकास मशीन पर स्थापित हो सकते हैं, तो आप अपने ऑपरेटिंग सिस्टम के लिए instant client installation guide का पालन कर सकते हैं।

पैरामीटर के बिना कनेक्शन ऑब्जेक्ट क्वेरी करें

किसी क्वेरी को निष्पादित करने के लिए conExecute-Function का उपयोग कर सकते हैं। आपके पास एक परिणाम या सरणी के रूप में क्वेरी परिणाम प्राप्त करने का विकल्प है। परिणाम ist Printed.log पर मुद्रित होता है।

function connExecute(err, connection)
{
    if (err) {
        console.error(err.message);
        return;
    }
    sql = "select 'test' as c1, 'oracle' as c2 from dual";
    connection.execute(sql, {}, { outFormat: oracledb.OBJECT }, // or oracledb.ARRAY
        function(err, result)
        {
            if (err) {
                console.error(err.message);
                connRelease(connection);
                return;
            }
            console.log(result.metaData);
            console.log(result.rows);
            connRelease(connection);
        });
}

चूंकि हमने गैर-पूलिंग कनेक्शन का उपयोग किया था, इसलिए हमें अपना कनेक्शन फिर से जारी करना होगा।

function connRelease(connection)
{
  connection.close(
    function(err) {
      if (err) {
        console.error(err.message);
      }
    });
}

किसी वस्तु के लिए आउटपुट होगा

[ { name: 'C1' }, { name: 'C2' } ]
[ { C1: 'test', C2: 'oracle' } ]

और सरणी के लिए आउटपुट होगा

[ { name: 'C1' }, { name: 'C2' } ]
[ [ 'test', 'oracle' ] ]

आसान क्वेरी के लिए एक स्थानीय मॉड्यूल का उपयोग करना

ORACLE-DB से अपनी क्वेरी को सरल बनाने के लिए, आप अपनी क्वेरी को इस तरह से कॉल करना चाह सकते हैं:

const oracle = require('./oracle.js');

const sql = "select 'test' as c1, 'oracle' as c2 from dual";
oracle.queryObject(sql, {}, {})
    .then(function(result) {
        console.log(result.rows[0]['C2']);
    })
    .catch(function(err) {
        next(err);
    });

कनेक्शन का निर्माण और निष्पादन इस oracle.js फ़ाइल में निम्नानुसार सामग्री के साथ शामिल है:

'use strict';
const oracledb = require('oracledb');

const oracleDbRelease = function(conn) {
  conn.release(function (err) {
    if (err)
      console.log(err.message);
  });
};

function queryArray(sql, bindParams, options) {
    options.isAutoCommit = false; // we only do SELECTs
 
    return new Promise(function(resolve, reject) {
        oracledb.getConnection(
                  {
                    user          : "oli",
                    password      : "password",
                    connectString : "ORACLE_DEV_DB_TNA_NAME"
                })
        .then(function(connection){
            //console.log("sql log: " + sql + " params " + bindParams);
            connection.execute(sql, bindParams, options)
            .then(function(results) {
                resolve(results);
                process.nextTick(function() {
                    oracleDbRelease(connection);
                });
            })
            .catch(function(err) {
                reject(err);
 
                process.nextTick(function() {
                    oracleDbRelease(connection);
                        });
                    });
            })
            .catch(function(err) {
                reject(err);
            });
    });
}

function queryObject(sql, bindParams, options) {
    options['outFormat'] = oracledb.OBJECT; // default is oracledb.ARRAY
    return queryArray(sql, bindParams, options);
}

module.exports = queryArray; 
module.exports.queryArray = queryArray; 
module.exports.queryObject = queryObject;

ध्यान दें कि आपके पास अपनी oracle ऑब्जेक्ट पर कॉल करने के लिए दोनों तरीके queryArray और queryObject हैं।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow