1

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}]

4

1 に答える 1

0

Oracleモジュールのバージョンを最新のもの - 0.3.4 に更新する必要があります。BLOB のサポートが向上しています。

次のように実行できます。

npm update oracle
于 2013-10-17T15:38:33.153 に答える