首先用SQLPLUS或其它工具在oracle数据库里创建表MY_USERS,用来此次测试:

CREATE TABLE MY_USERS( ID INTEGER, FIRSTNAME NVARCHAR2(20), LASTNAME NVARCHAR2(20) ) TABLESPACE  SYSTEM;

nodejs读写oracle的示例代码如下:

// 使用的oracle驱动:https://github.com/joeferner/node-oracle

var oracle = require('oracle');

// 需根据实际测试环境配置连接oracle数据库的参数

var oraConfig = {

hostname: "192.168.0.230",

port: 1521,

database: "orcl",    // oracle的SID

user: "system",    // 登录oracle的用户名

password: "password" // 请换为实际密码

}

或者:

var oraConnString = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.230)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)))";

var oraConfig = { "tns": oraConnString, "user": "system", "password": "wangkong" };

// 插入1条数据,并返回被插入记录的I某个字段

oracle.connect(oraConfig, function(err, connection) {

if (err) {

console.log("Fail to connect oracle:", err);

return;

}

connection.setAutoCommit(true);

connection.execute("INSERT INTO MY_USERS(ID,FIRSTNAME,LASTNAME) VALUES (:1, :2, :3) RETURNING FIRSTNAME INTO :4", [2, '陈', '二', new oracle.OutParam(oracle.OCCISTRING)], function(err, result) {

if (err) {

console.log(err);

return;

}

console.log(JSON.parse(result));

connection.close();

});

});

返回结果为:

{

"updateCount": 1,

"returnParam": "陈"

}

// 批量插入记录

oracle.connect(oraConfig, function(err, connection) {

if (err) {

console.log("Fail to connect oracle:", err);

return;

}

connection.setAutoCommit(true);

function doInsert(sqlCmdOfInsert, records, callback) {

if (records.length > 0) {

sqlCmdOfInsert.execute(records.shift(), function(err, result) {

if (err) {

return callback(err);

}

if (result.updateCount !== 1) {

return callback(new Error("bad updateCount: " + result.updateCount));

}

// recurse with remaining records

doInsert(sqlCmdOfInsert, records, callback);

});

} else {

// job is finished

return callback();

}

}

var users = [ [ 3, "张", "三" ], [ 4, "李", "四" ], [ 5, "王", "五" ], [ 6, "赵", "六" ] ];

var sqlCmdOfInsert = connection.prepare("INSERT INTO MY_USERS(ID, FIRSTNAME, LASTNAME) VALUES(:1, :2, :3)");

doInsert(sqlCmdOfInsert, users, function(err) {

if (err) {

console.log(err);

return;

}

console.log("Done!");

});

});

// 查询一条记录:

oracle.connect(oraConfig, function(err, connection) {

if (err) {

console.log("Fail to connect oracle:", err);

return;

}

connection.execute("SELECT * FROM MY_USERS WHERE ID=:1", [5], function(err, results) {

if (err) {

console.log("Fail to query table:", err);

return;

}

console.log(JSON.parse(result));

connection.close();

});

});

// 查询多条记录,每次读取处理1条记录

oracle.connect(oraConfig, function(err, connection) {

if (err) {

console.log("Fail to connect oracle:", err);

return;

}

connection.setPrefetchRowCount(200);

var reader = connection.reader("SELECT * FROM MY_USERS WHERE ID>:1", [2]);

function doRead(cb) {

reader.nextRow(function(err, row) {

if (err) {

return cb(err);

}

if (row) {

// do something with row

console.log(JSON.stringify(row, "", "\t"));

// recurse to read next record

return doRead(cb)

} else {

// we are done

return cb();

}

})

}

doRead(function(err) {

if (err) {

console.log(err);

return;

}

console.log("Done!");

});

});

参考网址:

https://github.com/joeferner/node-oracle

https://www.npmjs.org/package/oracle

http://my.oschina.net/zenglingfan/blog/164390

node.js查询oracle,nodejs操作oracle数据库示例相关推荐

  1. [Node.js] 使用nodejs操作mysql数据库

    使用nodejs操作mysql数据库 安装命令 npm init -y 安装命令 npm i mysql --registry=https://registry.npm.taobao.org cons ...

  2. 记录nodejs使用express搭建一个api服务器程序(5)-nodejs操作SQL数据库,Sequelize和Knex

    此文章是我自己用来记录如何搭建一个以express为基础的api服务器框架的过程,并不是什么新手教程,并不会每一步都写得非常详细,如果您要阅读此文,需要一点nodejs和编写代码的基础知识 文接上篇 ...

  3. Nodejs 操作 MongoDb 数据库

    一.在 Nodejs 中使用 Mongodb 在前面的博文我们给大家讲了如何使用命令操作 Mongodb,这篇博文开始我们给大家讲解一 下如何使用 Nodejs 来操作 Mongodb 数据库 Nod ...

  4. Node.js+Mongoose实现MondoDB操作

    1.MongoDB是什么,就是一个讲数据存储为类似JSON格式的NoSQL数据库,结构灵活. 2.Mongoose是什么,就是一个以对象形式来操作MongoDB存储的node.js库,ORM,非常方便 ...

  5. nodejs操作mongodb数据库(mongoose)

    准备 在上一篇的基础上,通过npm安装mongoose. 关于mongoose Mongoose是MongoDB的一个对象模型工具,是基于node-mongodb-native开发的MongoDB n ...

  6. adodb mysql.inc.php,php adodb操作mysql数据库示例(增删改查)

    php adodb操作mysql数据库示例(增删改查) 发布于 2014-10-05 08:16:18 | 113 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: H ...

  7. js修改css hover样式,JS实现css hover操作的方法示例

    JS实现css hover操作的方法示例 发布时间:2020-09-01 14:46:32 来源:脚本之家 阅读:118 作者:谢玉胜 本文实例讲述了JS实现css hover操作的方法.分享给大家供 ...

  8. nodejs操作oracle数据库简单封装-node-oracledb模块

    一 安装模块 npm install oracledb 官方文档:https://www.npmjs.com/package/oracledb 二 安装免费的Oracle Instant Client ...

  9. node.js 从基础到操作数据库

    node.js 学习 模块化 CommonJS----------双端(1.浏览器端;2.服务器端)------暴露:module.exports =??? exports.xxxx = ??? 浏览 ...

最新文章

  1. jenkins同平台发布
  2. java定义一个指针类型变量赋值吗,C++中指针的数据类型和运算相关知识小结
  3. 一文读懂区块链上的隐私与监管问题
  4. POJ 3617 Best Cow Line(最佳奶牛队伍)
  5. AudioScheduledSourceNode
  6. java基本字符串_java – c基本字符串操作
  7. 怎样制作动图gif?GIF生成器帮你一键制作gif
  8. 国产化Demo(dm7+Tongweb7+java)
  9. 【SELinux】vendor_file_contexts没有被编译到vendor/etc/selinux/路径下
  10. Wallpaper Engine软件——html做为壁纸
  11. 趣头条的区块链实验:为何金币贬值了6.6倍?
  12. php 获取域名前缀,PHP获取域名方法
  13. 【python】精简版 如何将图片转化为excel并导出
  14. IOS上架时及开发注意事项
  15. easyExcel导出数据并设置单元格下拉数据
  16. Vue3中 watch、watchEffect 详解
  17. python学习之路遇到的问题以及解决方法
  18. pandas安装完成后,报错:ImportError
  19. python 给QQ好友发信息
  20. c++ windows 蓝牙库_c++中蓝牙编程的库类

热门文章

  1. 推荐系统学习(一)推荐系统分类与基本流程
  2. pandas dataframe随机采样
  3. python取两个set的并集、交集、差集
  4. linux如何查看nohup日志大小,linux下nohup日志输出过大问题解决方案
  5. php网页如何做出透明的效果,css+filter实现简单的图片透明效果
  6. Unity调试外部DLL
  7. Ajax基础知识梳理 1
  8. ES索引管理工具curator安装
  9. Codeforces Round #476 (Div. 2) C - Greedy Arkady
  10. 【作业5】了解在什么岗位上有哪些语言需要使用