【发布时间】:2018-04-18 12:16:20
【问题描述】:
我正在尝试从 nodejs 查询 oracledb。下面是我用来查询的代码
exports.simpleExecute = function(query,bindParams, options,callback) {
try {
pool.getConnection(function(err, connection) {
if (err) {
console.log(err);
}
connection.execute(query,bindParams, options,function(err, data) {
console.log(data);
if (err) {
console.log(err);
response.send({})
}
callback(null, data);
})
})
} catch (err) {
callback(err, null);
}
}
以下是发出请求的代码:
database.simpleExecute(query1,{},{outFormat: database.OBJECT},function(err, data1) {
// console.log(data2);
if (err) {
console.log(err);
response.send({});
}
var percentChange = ((data1.rows[0].COUNT - data1.rows[0].COUNT) / data2.rows[0].COUNT) * 100;
var data = [data1.rows[0].COUNT, percentChange];
response.send(data);
});
其中 query1 是:“SELECT count(distinct user_id) count_value FROM chatlog where trunc(timestamp) between to_date('2017-09-09','YYYY-MM-DD') 和 to_date('2017-10-08 ','YYYY-MM-DD')"
问题在于 data1.rows 参数不是作为对象数组出现,而是作为数组出现。以前我尝试了另一种从https://jsao.io/2015/03/making-a-wrapper-module-for-the-node-js-driver-for-oracle-database/ 获取的连接和查询方法,在这种情况下,事情似乎运行良好。我还在 data1.rows 中获取了参数的名称。当我打印时得到的输出数据1是:
{ rows: [ [ 1 ] ],
resultSet: undefined,
outBinds: undefined,
rowsAffected: undefined,
metaData: [ { name: 'COUNT' } ] }
【问题讨论】:
-
抱歉,我才看到这个……你用的是什么版本的 Node.js?
-
@DanMcGhan 我正在使用节点版本 6.11.3
标签: javascript sql node.js oracle11g node-oracledb