美文网首页
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