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