Node.js oracledb教程之Oracle 类

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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,764评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,914评论 18 139
  • 话说今天是《大鱼海棠》上映的大日子, 一部教人等待十二年的电影,想想也是醉了~ “终于等到你还好我们没放弃” 不论...
    陪跑阅读 239评论 0 0
  • 线上1.0天使班60天践行: 第7周周检视 没有反思的人生不值得过,用行动来改变自己的习惯,用反思的习惯来指导行动...
    笑Eva阅读 218评论 0 0
  • 在线安装 离线安装 其他版本 启动 启动使用代理并指定容器网段 all_proxy=http://proxyser...
    helphi阅读 1,227评论 0 0