Oracle类是Pool 和 Connection 类的工厂类
加载 node-oracledb 时进行实例化
Oracledb 对象是单例模式
var oracledb = require("oracledb");
Oracledb类
一. 常量
- outForma
查询结果输出格式
| 常量名 | 常量值 | 描述 |
|---|---|---|
| oracledb.ARRAY | 4001 | 以数组形式输出查询结果 |
| oracledb.OBJECT | 4002 | 以对象形式输出查询结果 |
默认是是oracledb.ARRAY(更高效)
oracledb.outFormat = oracledb.ARRAY;
- Node-oracledb Types:
execute()方法参数 bind parameter 数据类型常量
| 常量名 | 常量值 | 描述 |
|---|---|---|
| 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 | 输入数据 |
| oracledb.BIND_INOUT | 3002 | 即可输入也可输出数据 |
| oracledb.BIND_OUT | 3003 | 输入数据 |
- 其它
二. 属性
在部署时设置,必要时可在创建 Pool 类或者 Connection 类时重载。
这些属性都是可读且可修改的。
修改属性时, 之前的 Oracle 对象不受影响, 只有修改之后 createPool() 或 getConnection() 方法创建的 Oracle 对象才会被影响 。
| 属性名 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| autoCommit | Boolean | false | 执行语句时自动commit |
| connectionClass | String | ||
| edition | String | ||
| events | Boolean | false | 是否允许Oracle Client events 模式 |
| extendedMetaData | Boolean | false | 查询结果是否包含额外的数据 |
| externalAuth | Boolean | false | |
| fetchArraySize | Number | 100 | 获取查询结果时,设置内部缓冲区大小,只影响性能,不影响返回结果行数。当结果返回很多行时,高缓冲区大小性能更佳。 |
| fetchAsBuffer | Array | ||
| fetchAsString | Array | 返回结果列值为String类型 | |
| maxRows | Number | 0(无限制) | 最多返回多少行 |
| outFormat | Number | oracledb.ARRAY | 以数组/对象形式输出查询结果,详见outFormat常量 |
| poolIncrement | Number | 1 | |
| poolMax | Number | 4 | |
| poolMin | Number | 0 | |
| poolPingInterval | Number | ||
| poolTimeout | Number | 60 | |
| Promise | Promise | 在方法中支持Promise | |
| queueRequests | Boolean | true | pool连接数超过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){});
参数:
Object poolAttrs:
详见上面的属性Error error:
createPool() 成功时 error为空,失败时 error 包含失败的错误信息,
详见 Errors 类Pool pool:
详见 Pool 类
- getConnection()
getConnection([String poolAlias | Object connAttrs], function(Error error, Connection conn){});
从连接缓冲池中获取连接,或者新建独立的连接
对于不常用的连接,独立连接比连接池更高效。但是,大多数情况下,推荐使用连接池。
| Signature | 描述 | 返回 |
|---|---|---|
| getConnection() | 从默认连接池返回连接 | promise |
| getConnection(callback) | 从默认连接池返回连接 | 回调函数 |
| getConnection(poolAlias) | 从特定poolAlias连接池返回连接 | promise |
| getConnection(poolAlias, callback) | 从特定poolAlias连接池返回连接 | 回调函数 |
| getConnection(connAttrs) | 返回独立连接 | promise |
| getConnection(connAttrs, callback) | 返回独立连接 | 回调函数 |
参数:
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]);
参数:
- String poolAlias