我已经将我的 web 服务器 node.js 连接到 Oracle,并且我已经从 de 数据库中选择了一些数据。
选择字符串或 int 等数据类型时没有问题,但我也需要读取一些 BLOB(在我的数据库中称为 PARAMETERS)。
第一个问题:存储在数据库中的 BLOB 的大小是 37000 字节,但是缓冲区的最大大小是 2000 --> 解决方案:我只选择了前 2000 字节
第二个问题:结果是一个数组,但我认为它是空的或者我无法读取里面的数据 --> 解决办法?
有谁知道如何使用 node.js-Oracle 模块读取 BLOB?
非常感谢!
db.connect({ "hostname": "xxx", "user":"xx", "password": "xx", "database": "xx"}, function(err, connection) {
if (err) {
return console.log("CONNECTION ERROR: " + err);
}
else{
console.log('Connected to Oracle ');
connection.execute('SELECT utl_raw.cast_to_varchar2(dbms_lob.substr(PARAMETERS,2000,1)) FROM records WHERE records.id = 1', [], function (err, rows) {
if ( err ) {
console.log('error: ' + err);
}
console.log('Parameters= ' + rows);
socket.emit('response:record', {'record': rows});
});
connection.execute('SELECT records.name FROM records WHERE records.id = 1', [], function (err, rows) {
if ( err ) {
console.log('error: ' + err);
}
socket.emit('response:name', {'record': rows});
console.log('name= ' + rows);
});
connection.close();
}
});
结果是:
连接到 Oracle
参数 = [object object]
name = [{NAME: ARD}]