从Node.js中读取Oracle中的BLOB

时间:2013-10-17 12:25:17

标签: javascript oracle node.js blob

我已将我的网络服务器node.js连接到Oracle,我已经从de数据库中选择了一些数据。

当我选择像string或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 参数= [对象对象]
name = [{NAME:ARD}]

1 个答案:

答案 0 :(得分:0)

您应将oracle模块的版本更新为最新版本 - 0.3.4 它对BLOB有更好的支持。

您可以按照以下方式执行此操作:

npm update oracle