美文网首页
Node.js oracledb教程之Oracle 类

Node.js oracledb教程之Oracle 类

作者: 攸凝渊 | 来源:发表于2018-09-08 15:05 被阅读0次

Oracle类是Pool 和 Connection 类的工厂类
加载 node-oracledb 时进行实例化
Oracledb 对象是单例模式

var oracledb = require("oracledb");

Oracledb类
一. 常量

  1. outForma
    查询结果输出格式
常量名 常量值 描述
oracledb.ARRAY 4001 以数组形式输出查询结果
oracledb.OBJECT 4002 以对象形式输出查询结果

默认是是oracledb.ARRAY(更高效)
oracledb.outFormat = oracledb.ARRAY;

  1. 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
  1. 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
  1. Bind Direction 常量
    适用于 execute() bindParams, queryStream() 和 executeMany() 的 bindDefs 的 dir 属性
常量名 常量值 描述
oracledb.BIND_IN 3001 输入数据
oracledb.BIND_INOUT 3002 即可输入也可输出数据
oracledb.BIND_OUT 3003 输入数据
  1. 其它

二. 属性
在部署时设置,必要时可在创建 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 版本后缀(只读)

三. 方法

  1. createPool()
    createPool(Object poolAttrs, function(Error error, Pool pool){});
    参数:
  • Object poolAttrs:
    详见上面的属性

  • Error error:
    createPool() 成功时 error为空,失败时 error 包含失败的错误信息,
    详见 Errors 类

  • Pool pool:
    详见 Pool 类

  1. 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 类

  1. getPool()
    getPool([String poolAlias]);
    参数:
  • String poolAlias

相关文章

网友评论

      本文标题:Node.js oracledb教程之Oracle 类

      本文链接:https://www.haomeiwen.com/subject/nvokgftx.html