Clob在快递应用中无法正确打印

时间:2016-05-28 19:03:06

标签: node.js express oracle11g node-oracle

我的这个表有一个clob列。我使用oracledb驱动程序从我的快递应用程序连接到数据库。我想打印出这个clob。这是我的代码:

router.get('/:task_name', function (req,res) {
"use strict";

oracledb.getConnection(connAttrs.database, function (err, connection) {
    if (err) {
        // Error connecting to DB
        res.set('Content-Type', 'application/json');
        res.status(500).send(JSON.stringify({
            status: 500,
            message: "Error connecting to DB",
            detailed_message: err.message
        }));
        return;
    }

    connection.execute("select solution from solvedtasks s join tasks t on t.TASK_ID = s.TASK_ID WHERE task_name= :task_name", [req.params.task_name],{
        outFormat: oracledb.OBJECT //resultSet:true,

    }, function (err, result) {
        if (err) {
            res.set('Content-Type', 'application/json');
            res.status(500).send(JSON.stringify({
                status: 500,
                message: "Error getting the user profile",
                detailed_message: err.message
            }));
        } else {
            res.contentType('application/json').status(200);
            res.send(JSON.stringify(result.rows[0]));
            console.log(result.rows[0]);
          //  fetchRowsFromRS(connection,res,result.resultSet,10);
        }
        // Release the connection

        connection.release(
            function (err) {
                if (err) {
                    console.error(err.message);
                } else {
                    console.log("GET /SolvedTasks : Connection released");
                }
            });

    });
  });
 });

我没有从我的数据库中打印clob,而是获得了类似于lob元数据的东西。还有其他人遇到过这个问题吗?这是我输出的屏幕截图: Clob output

1 个答案:

答案 0 :(得分:1)

所以我解决了这个问题,我发布了一个答案,以防有人遇到这个问题。显然原来的oracledb驱动程序有一些处理clobs的问题。但是有一个增强其功能的库,称为simple-oracledb,非常易于使用和安装:https://github.com/sagiegurari/simple-oracledb

通过使用connection.query,正确处理clobs:

true