Web サーバー node.js を Oracle に接続し、データベースからいくつかのデータを選択しました。
string や int などのデータ型を選択しても問題はありませんが、いくつかの BLOB も読み取る必要があります (データベースでは PARAMETERS と呼ばれます)。
最初の問題: データベースに格納されている BLOB のサイズは 37000 バイトですが、バッファの最大サイズは 2000 です -->解決策: 最初の 2000 バイトだけを選択しました
2番目の問題:結果は配列ですが、空であるか、内部のデータを読み取れないと思います->解決策は?
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]
name = [{NAME: ARD}]