在 Node.js 中从 Oracle 数据库读取 BLOB

问题描述

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

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-oracledb Lob class 实例,您可以从中进行流式传输。

但是,直接获取 Buffer 可能是最简单的。为此,请设置 $password = ''; if (strlen($user_data['password']) == 32) { $password = $user_data['password']; } else { if (!isset($user_data['salt']) || empty($user_data['salt'])) { $password = md5($user_data['password']); } else { $password = fn_generate_salted_password($user_data['password'],$user_data['salt']); } } return $password; ,例如:

oracledb.fetchAsBuffer

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