如何在 Oracle 中读取一个很长的 BLOB 列?

问题描述 投票:0回答:1

我想将 Node Express API 与 Oracle 11g 数据库连接,该数据库有一个带有 BLOB 列的表。我想使用 SQL 查询读取它,但问题是 BLOB 列可以有一个很长的文本,超过 100k 字符。我如何才能做到这一点?

我试着使用: select utl_raw.cast_to_varchar2(dbms_lob.substr(COLUMN_NAME)) from TABLE_NAME.但它返回 "原始变量长度太长"。

我可以在一个循环中进行多个查询,然后加入它们,如果有必要的话,但我还没有找到如何只带来blob的一部分。

sql oracle express oracle11g blob
1个回答
1
投票

使用 节点-oracledb模块 来访问Oracle数据库(你可能已经在做了,但别提了)。

默认情况下,node-oracledb会以Lob实例的形式返回LOB,你可以从那里流式传输。 另外,你也可以直接以字符串或Buffer的形式来获取数据,这对于 "小 "LOB来说很有用。 对于100K,我会直接以Buffer的形式获取数据,你可以通过设置来实现。

oracledb.fetchAsBuffer = [ oracledb.BLOB ];

查看 使用CLOB、NCLOB和BLOB数据。 文档,以及像 blobhttp.js 和其他 lob*.js 文件在 示例目录.

您可能还想看看 https:/jsao.io201803creating-a-rest-api-with-node-js-and-oracle-database。 其中显示了Express和node-oracledb。

© www.soinside.com 2019 - 2024. All rights reserved.