node.js查询oracle,nodejs操作oracle数据库示例
首先用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数据库示例相关推荐
- [Node.js] 使用nodejs操作mysql数据库
使用nodejs操作mysql数据库 安装命令 npm init -y 安装命令 npm i mysql --registry=https://registry.npm.taobao.org cons ...
- 记录nodejs使用express搭建一个api服务器程序(5)-nodejs操作SQL数据库,Sequelize和Knex
此文章是我自己用来记录如何搭建一个以express为基础的api服务器框架的过程,并不是什么新手教程,并不会每一步都写得非常详细,如果您要阅读此文,需要一点nodejs和编写代码的基础知识 文接上篇 ...
- Nodejs 操作 MongoDb 数据库
一.在 Nodejs 中使用 Mongodb 在前面的博文我们给大家讲了如何使用命令操作 Mongodb,这篇博文开始我们给大家讲解一 下如何使用 Nodejs 来操作 Mongodb 数据库 Nod ...
- Node.js+Mongoose实现MondoDB操作
1.MongoDB是什么,就是一个讲数据存储为类似JSON格式的NoSQL数据库,结构灵活. 2.Mongoose是什么,就是一个以对象形式来操作MongoDB存储的node.js库,ORM,非常方便 ...
- nodejs操作mongodb数据库(mongoose)
准备 在上一篇的基础上,通过npm安装mongoose. 关于mongoose Mongoose是MongoDB的一个对象模型工具,是基于node-mongodb-native开发的MongoDB n ...
- adodb mysql.inc.php,php adodb操作mysql数据库示例(增删改查)
php adodb操作mysql数据库示例(增删改查) 发布于 2014-10-05 08:16:18 | 113 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: H ...
- js修改css hover样式,JS实现css hover操作的方法示例
JS实现css hover操作的方法示例 发布时间:2020-09-01 14:46:32 来源:脚本之家 阅读:118 作者:谢玉胜 本文实例讲述了JS实现css hover操作的方法.分享给大家供 ...
- nodejs操作oracle数据库简单封装-node-oracledb模块
一 安装模块 npm install oracledb 官方文档:https://www.npmjs.com/package/oracledb 二 安装免费的Oracle Instant Client ...
- node.js 从基础到操作数据库
node.js 学习 模块化 CommonJS----------双端(1.浏览器端;2.服务器端)------暴露:module.exports =??? exports.xxxx = ??? 浏览 ...
最新文章
- jenkins同平台发布
- java定义一个指针类型变量赋值吗,C++中指针的数据类型和运算相关知识小结
- 一文读懂区块链上的隐私与监管问题
- POJ 3617 Best Cow Line(最佳奶牛队伍)
- AudioScheduledSourceNode
- java基本字符串_java – c基本字符串操作
- 怎样制作动图gif?GIF生成器帮你一键制作gif
- 国产化Demo(dm7+Tongweb7+java)
- 【SELinux】vendor_file_contexts没有被编译到vendor/etc/selinux/路径下
- Wallpaper Engine软件——html做为壁纸
- 趣头条的区块链实验:为何金币贬值了6.6倍?
- php 获取域名前缀,PHP获取域名方法
- 【python】精简版 如何将图片转化为excel并导出
- IOS上架时及开发注意事项
- easyExcel导出数据并设置单元格下拉数据
- Vue3中 watch、watchEffect 详解
- python学习之路遇到的问题以及解决方法
- pandas安装完成后,报错:ImportError
- python 给QQ好友发信息
- c++ windows 蓝牙库_c++中蓝牙编程的库类