如何解决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,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
}
上面,我试图传递一个数组,但它不起作用。
我无法更改存储过程。
因此,我必须使用预期的参数类型调用存储过程。
感谢任何帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。