Oracle類是Pool 和 Connection 類的工廠類
加載 node-oracledb 時進(jìn)行實例化
Oracledb 對象是單例模式
var oracledb = require("oracledb");
Oracledb類
一. 常量
- outForma
查詢結(jié)果輸出格式
| 常量名 | 常量值 | 描述 |
|---|---|---|
| oracledb.ARRAY | 4001 | 以數(shù)組形式輸出查詢結(jié)果 |
| oracledb.OBJECT | 4002 | 以對象形式輸出查詢結(jié)果 |
默認(rèn)是是oracledb.ARRAY(更高效)
oracledb.outFormat = oracledb.ARRAY;
- Node-oracledb Types:
execute()方法參數(shù) bind parameter 數(shù)據(jù)類型常量
| 常量名 | 常量值 | 描述 |
|---|---|---|
| oracledb.BLOB | 2007 | |
| oracledb.BUFFER | 2005 | |
| oracledb.CLOB | 2006 | |
| oracledb.CURSOR | 2004 | |
| oracledb.DATE | 2003 | |
| oracledb.DEFAULT | 0 | |
| oracledb.NUMBER | 2002 | |
| oracledb.STRING | 2001 |
- Oracle Database Type 常量
extended metadata 常量
| 常量名 | 常量值 | 描述 |
|---|---|---|
| oracledb.DB_TYPE_BINARY_DOUBLE | 101 | BINARY_DOUBLE |
| oracledb.DB_TYPE_BINARY_FLOAT | 100 | BINARY_FLOAT |
| oracledb.DB_TYPE_BLOB | 113 | BLOB |
| oracledb.DB_TYPE_CHAR | 96 | CHAR |
| oracledb.DB_TYPE_CLOB | 112 | CLOB |
| oracledb.DB_TYPE_DATE | 12 | DATE |
| oracledb.DB_TYPE_LONG | 8 | LONG |
| oracledb.DB_TYPE_LONG_RAW | 24 | LONG RAW |
| oracledb.DB_TYPE_NCHAR | 1096 | NCHAR |
| oracledb.DB_TYPE_NCLOB | 1112 | NCLOB |
| oracledb.DB_TYPE_NUMBER | 2 | NUMBER or FLOAT |
| oracledb.DB_TYPE_NVARCHAR | 1001 | NVARCHAR |
| oracledb.DB_TYPE_RAW | 23 | RAW |
| oracledb.DB_TYPE_ROWID | 104 | ROWID |
| oracledb.DB_TYPE_TIMESTAMP | 187 | TIMESTAMP |
| oracledb.DB_TYPE_TIMESTAMP_LTZ | 232 | TIMESTAMP WITH LOCAL TIME ZONE |
| oracledb.DB_TYPE_TIMESTAMP_TZ | 188 | TIMESTAMP WITH TIME ZONE |
| oracledb.DB_TYPE_VARCHAR | 1 | VARCHAR2 |
- Bind Direction 常量
適用于 execute() bindParams, queryStream() 和 executeMany() 的 bindDefs 的 dir 屬性
| 常量名 | 常量值 | 描述 |
|---|---|---|
| oracledb.BIND_IN | 3001 | 輸入數(shù)據(jù) |
| oracledb.BIND_INOUT | 3002 | 即可輸入也可輸出數(shù)據(jù) |
| oracledb.BIND_OUT | 3003 | 輸入數(shù)據(jù) |
- 其它
二. 屬性
在部署時設(shè)置,必要時可在創(chuàng)建 Pool 類或者 Connection 類時重載。
這些屬性都是可讀且可修改的。
修改屬性時, 之前的 Oracle 對象不受影響, 只有修改之后 createPool() 或 getConnection() 方法創(chuàng)建的 Oracle 對象才會被影響 。
| 屬性名 | 類型 | 默認(rèn)值 | 描述 |
|---|---|---|---|
| autoCommit | Boolean | false | 執(zhí)行語句時自動commit |
| connectionClass | String | ||
| edition | String | ||
| events | Boolean | false | 是否允許Oracle Client events 模式 |
| extendedMetaData | Boolean | false | 查詢結(jié)果是否包含額外的數(shù)據(jù) |
| externalAuth | Boolean | false | |
| fetchArraySize | Number | 100 | 獲取查詢結(jié)果時,設(shè)置內(nèi)部緩沖區(qū)大小,只影響性能,不影響返回結(jié)果行數(shù)。當(dāng)結(jié)果返回很多行時,高緩沖區(qū)大小性能更佳。 |
| fetchAsBuffer | Array | ||
| fetchAsString | Array | 返回結(jié)果列值為String類型 | |
| maxRows | Number | 0(無限制) | 最多返回多少行 |
| outFormat | Number | oracledb.ARRAY | 以數(shù)組/對象形式輸出查詢結(jié)果,詳見outFormat常量 |
| poolIncrement | Number | 1 | |
| poolMax | Number | 4 | |
| poolMin | Number | 0 | |
| poolPingInterval | Number | ||
| poolTimeout | Number | 60 | |
| Promise | Promise | 在方法中支持Promise | |
| queueRequests | Boolean | true | pool連接數(shù)超過poolMax時,新的請求放到隊列中 |
| queueTimeout | Number | 60000 | 秒 |
| stmtCacheSize | Number | 30 | |
| version | Number | node-oracledb 版本(只讀) | |
| versionString | String | node-oracledb 版本(只讀) | |
| versionSuffix | String | node-oracledb 版本后綴(只讀) |
三. 方法
- createPool()
createPool(Object poolAttrs, function(Error error, Pool pool){});
參數(shù):
Object poolAttrs:
詳見上面的屬性Error error:
createPool() 成功時 error為空,失敗時 error 包含失敗的錯誤信息,
詳見 Errors 類Pool pool:
詳見 Pool 類
- getConnection()
getConnection([String poolAlias | Object connAttrs], function(Error error, Connection conn){});
從連接緩沖池中獲取連接,或者新建獨立的連接
對于不常用的連接,獨立連接比連接池更高效。但是,大多數(shù)情況下,推薦使用連接池。
| Signature | 描述 | 返回 |
|---|---|---|
| getConnection() | 從默認(rèn)連接池返回連接 | promise |
| getConnection(callback) | 從默認(rèn)連接池返回連接 | 回調(diào)函數(shù) |
| getConnection(poolAlias) | 從特定poolAlias連接池返回連接 | promise |
| getConnection(poolAlias, callback) | 從特定poolAlias連接池返回連接 | 回調(diào)函數(shù) |
| getConnection(connAttrs) | 返回獨立連接 | promise |
| getConnection(connAttrs, callback) | 返回獨立連接 | 回調(diào)函數(shù) |
參數(shù):
String poolAlias
Object connAttrs:
提供連接證書和配置屬性,包括:
String connectString / String connectionString, String edition, Boolean events, externalAuth, newPassword, password, privilege, stmtCacheSize, user等Error error
詳見 Errors類Connection connection
詳見 Connection 類
- getPool()
getPool([String poolAlias]);
參數(shù):
- String poolAlias