【问题标题】:Read BLOB from Oracle Database in Node.js在 Node.js 中从 Oracle 数据库中读取 BLOB
【发布时间】:2021-06-24 13:09:42
【问题描述】:

我正在尝试使用来自名为 oracledb 的 npm 包中的 nodejs 从 Oracle 读取 BLOB 数据类型,这是我的选择语句,其中包含图片:

select media from test_data

我尝试了一些解决方案,但都不起作用。

这是我来自res.json的回复:

{
        "MEDIA": {
            "_readableState": {
                "objectMode": false,
                "highWaterMark": 16384,
                "buffer": {
                    "head": null,
                    "tail": null,
                    "length": 0
                },
                "length": 0,
                "pipes": [],
                "flowing": null,
                "ended": false,
                "endEmitted": false,
                .....
   
    },

如何获得它的十六进制值?

【问题讨论】:

标签: node.js oracle blob node-oracledb


【解决方案1】:

您看到的是 node-oracledb Lob class 的一个实例,您可以从中流式传输。

但是,直接获取缓冲区可能是最简单的。通过设置oracledb.fetchAsBuffer 来做到这一点,例如:

oracledb.fetchAsBuffer = [ oracledb.BLOB ];

const result = await connection.execute(`SELECT b FROM mylobs WHERE id = 2`);

if (result.rows.length === 0)
  console.error("No results");
else {
  const blob = result.rows[0][0];
  console.log(blob.toString());  // assuming printable characters
}

请参阅文档Simple LOB Queries and PL/SQL OUT Binds

【讨论】:

    猜你喜欢
    • 2013-10-25
    • 2014-10-02
    • 2011-08-06
    • 2020-06-26
    • 2017-01-24
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多