消耗Oracle过程- Node.js knext .js



大家早上好!一切都好吗?

我有一个问题,开发一个API,将消耗一些信息在Oracle数据库。我使用Knex.js查询生成器在Node.js中开发了API框架。我直接在后端开发了对数据库的查询,然后在运行后设置了将直接在数据库中执行此查询的过程。

但是我不能从后端使用这个过程到PLSQL。在Knex文档中没有关于存储过程消费的信息。搜索论坛,我看到一些开发人员使用knex。查询或knex。执行Begin,然后通过参数使用Procedure。但是当我试着这样运行时,我得到了一个错误。查询或knex。Execute不是函数

我认识的人能告诉我出了什么事吗?或者是否有其他方法可以本地完成此消费(不使用框架),或者是否有为这种类型的执行做好更好准备的框架?
const data = await connection.execute(
`
BEGIN
SP_GUIA_PROCEDURE(P_NUMB_GUIA => 000254, P_NUMB_BENEF => '000025448911000');
END;
`
);
**TypeError: connection.execute is not a function**

提前谢谢你。

您似乎正在使用Knex来获得连接。在Knex中没有名为execute()的方法可用。您可以使用connection.raw()调用存储过程。此外,使用绑定作为过程的参数也是一个很好的实践。下面是可以提供帮助的示例代码(带有绑定):

const data = await connection.raw(
`BEGIN
SAMPLE_PROCEDURE(:id,:name, :oval);
END;`,
{
id: 11, // Bind type is determined from the data.  Default direction is BIND_IN
name: {val: 'James', dir: oracledb.BIND_INOUT},
oval: {type: oracledb.NUMBER, dir: oracledb.BIND_OUT}
}
);

SAMPLE_PROCEDURE为存储过程,result为包含外绑定的数组。

最新更新