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/
我正在尝试使用 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/