NodeJS 是一款基于 Chrome V8 引擎的 JavaScript 運行環境,可以讓 JavaScript 運行在服務端,使得 JavaScript 在服務端也能具備高效、易擴展、跨平臺等特性。目前,NodeJS 和 Oracle 數據庫的應用非常廣泛,下面就簡單介紹 NodeJS 連接 Oracle 數據庫的方法。
在使用 NodeJS 連接 Oracle 數據庫之前,需要安裝 Node-oracledb,這是一款 Oracle 官方提供的適用于 NodeJS 的驅動程序,提供了高效的連接數據庫和執行 SQL 語句的方法。Node-oracledb 是提供 NodeJS 連接 Oracle 數據庫的可靠選擇。使用 Node-oracledb 前,必須在本地安裝 Oracle Instant Client 或 Oracle Database,也可以在 cloud 上通過 DBCS 服務使用 Oracle 數據庫。下面是一個代碼示例:
const oracledb = require('oracledb'); oracledb.outFormat = oracledb.OUT_FORMAT_OBJECT; (async function() { let connection; try { connection = await oracledb.getConnection( { user : "hr", password : "welcome", connectString : "localhost/XE" }); const result = await connection.execute(`SELECT first_name, last_name FROM employees WHERE department_id = :id`, [50]); console.log(result.rows); } catch (err) { console.error(err); } finally { if (connection) { try { await connection.close(); } catch (err) { console.error(err); } } } })();
上述代碼進行了一個名為“hr”的 Oracle 數據庫的鏈接,連接的用戶名為“hr”,密碼為“welcome”,連接字符串為“localhost/XE”,并運行了一個 SQL 語句,要求查詢 department_id 為 50 的 employee 部門的 first_name 和 last_name 字段。執行結果將以下面的形式輸出:
[ { FIRST_NAME: 'David', LAST_NAME: 'Austin' }, { FIRST_NAME: 'Sundar', LAST_NAME: 'Ande' }, { FIRST_NAME: 'Amit', LAST_NAME: 'Banda' }, { FIRST_NAME: 'Elizabeth', LAST_NAME: 'Bates' }, { FIRST_NAME: 'Curtis', LAST_NAME: 'Davies' }, { FIRST_NAME: 'Nanette', LAST_NAME: 'Cambrault' }, { FIRST_NAME: 'Oliver', LAST_NAME: 'Tuvault' }, { FIRST_NAME: 'Janette', LAST_NAME: 'King' } ]
另外,需要注意的是,如果 Oracle 數據庫采用了加密協議,需要在初始化時設置 NODE_TLS_REJECT_UNAUTHORIZED=0,否則連接時會報錯。還可以設置與線程、連接、緩存和 LOB 配置相關的值,以優化性能和調整吞吐量。
總的來說,使用 NodeJS 連接 Oracle 數據庫非常簡單,只需安裝 Node-oracledb 這款驅動程序,就可以迅速高效地操作 Oracle 數據庫了。