2

Oracle Driver (1.4.0) for NodeJS-4.2.2、Express (4.13.3) を使用して Oracle DB からデータを取得しようとしています。

出力をストリーム (ファイル) に書き込むことはできますが、それを変数オブジェクトに割り当てることはできません。以下はコードスニペットです。とにかく、 clob フィールド出力を var に割り当てますか?

{
                    if (err) { console.error(err.message); return; }
                    if (result.rows.length === 0) { console.log("No results"); return; }

                    var clobe = "";
                    var lob = result.rows[2][1];
                    if (lob === null) { console.log("BLOB was NULL"); return; }

                   // lob.setEncoding('utf8');
                    lob.on(
                        'end',
                        function()
                        {
                            console.log("lob.on 'end' event");
                            res.end();
                        });
                    lob.on(
                        'close',
                        function()
                        {
                            console.log("lob.on 'close' event");
                            connection.release(function(err) {
                                if (err) console.error(err);
                            });
                        });
                    lob.on(
                        'error',
                        function(err)
                        {
                            console.log("lob.on 'error' event");
                            console.error(err);
                        });
                    lob.on('data', function (chunk) { clobe += chunk; console.log("Added chunk("+chunk.length+") to clob("+clobe.length+")");});


                    res.writeHead(200, {'Content-Type': 'application/json' });

                    lob.pipe(res);
                }
4

2 に答える 2

0
    if (lob === null) { 
      console.log("CLOB was NULL");
      return;
    }
    var clob = "";
    lob.setEncoding('utf8');  // we want text, not binary output

    lob.on('end', function() {
      console.log("lob.on 'end' event ", clob);
    });
    lob.on('close', function() {
      console.log("lob.on 'close' event");
    });
    lob.on('error', function(err) {
      console.log("lob.on 'error' event");
      console.error(err);
    });
    lob.on('data', function (chunk) { 
      clob += chunk;
      console.log("Added chunk("+chunk.length+") to clob("+clob.length+")");
    });
于 2016-01-20T15:29:51.700 に答える