NPM Oracle:插入BLOB

时间:2019-06-24 16:47:38

标签: javascript node.js oracle node-oracle node-oracledb

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

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

但是我不知道“使用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')}
                )

1 个答案:

答案 0 :(得分:1)

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

提供表格:

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

一个INSERT示例是:

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');
. . .

另外,如果您需要它,我将在这个主题上整理一个小型系列,但它更多地围绕着Web服务器上载:https://jsao.io/2019/06/uploading-and-downloading-files-with-node-js-and-oracle-database/

相关问题