node.js - node-oracledb 可以调用具有自定义表类型作为参数的 pl/sql 存储过程吗?
问题描述
目前,我正在尝试使用 node-oracledb 调用 PL/SQL 存储过程(具有自定义表类型作为参数)。
PL/SQL 中自定义变量的声明:
TYPE 'ARR_USERNAME' as table of varchar2(32767);
ARR_USERNAME 的参数声明:
username IN arr_username
在这里,我试图调用该过程:
const result = await connection.execute(
`BEGIN
PROC_NAME(:var_1, :username, :details);
END;`, {
var_1: { type: oracledb.NUMBER, dir: oracledb.BIND_IN, val: 0 },
username: { type: oracledb.VARCHAR2, dir: oracledb.BIND_IN,
val: ['node', 'git', 'wow'] },
details: { type: oracledb.CURSOR, dir: oracledb.BIND_OUT },
},
);
运行代码后,我得到以下输出:
[Error: ORA-06550: line 2, column 9:
PLS-00306: wrong number or types of arguments in call to 'PROC_NAME'
ORA-06550: line 2, column 9:
PL/SQL: Statement ignored] {
errorNum: 6550,
offset: 14
}
上面,我试图传递一个数组,但它不起作用。
我无法更改存储过程。
因此,我必须使用预期的参数类型调用存储过程。
任何帮助表示赞赏。
解决方案
推荐阅读
- jsf - PrimeFacess 只读属性有时会被禁用
- c# - 如何让机器人对 discord.net 中自己的消息做出反应?
- google-sheets - Google表格,需要根据第二张表格上的两列编辑一列
- java - 在java中打开附加到eclipse项目的文件
- c# - 从另一个类调用的文件系统观察程序进程未触发事件 c#
- javascript - Javascript 和 DataTables:使用自定义格式对列进行排序
- angular - 当我的 url 的查询参数发生变化时,如何更新我的组件?
- html - 导航周围的背景图片和下方的文字
- javascript - 将相对图像 URL 添加到哈希名称
- django - Django TabularInline 中的 FOREIGN KEY 约束失败