NPM Oracle:插入 BLOB

NPM Oracle: Inserting BLOBs

我正在尝试使用 NPM oracle 库并使用从我计算机上的文件创建的 BLOB 值更新一些表。 Oracle 文档说要像下面这样使用 createLob() 函数来获取数据库将接受的值:

conn.createLob(oracledb.BLOB, function(err, templob) {
if (err) { . . . }
// ... else use templob
});

但我不知道 "use templob" 意味着什么...

如何将我的数据放入这些 oracledb.BLOB 对象中?

编辑:我正在尝试的更新示例:

const queryString = `UPDATE TABLENAME SET BLOB = :blob WHERE ID = 1234;`;
                this.oracleConnection.execute(queryString, 
                    {blob: await fs.readFileSync('/path/to/image.jpg')}
                )

根据您的用例(小文件和有限的并发性),我认为缓冲区 API 将是最好的选择,因为它们非常简单。来自 the doc:

鉴于 table:

CREATE TABLE mylobs (id NUMBER, c CLOB, b BLOB);

一个插入示例是:

var fs = require('fs');
var str = fs.readFileSync('example.txt', 'utf8');
. . .

conn.execute(
  `INSERT INTO mylobs (id, myclobcol) VALUES (:idbv, :cbv)`,
  { idbv: 1,
    cbv: str },  // type and direction are optional for IN binds
  function(err, result) {
    if (err)
      console.error(err.message);
    else
      console.log('CLOB inserted from example.txt');
. . .

此外,如果您需要它,我将结束关于这个主题的 mini-series,但它更多地围绕网络服务器上传:https://jsao.io/2019/06/uploading-and-downloading-files-with-node-js-and-oracle-database/