我在 oracle 中有一个名为 mj_order 的包,它有一个函数 c_order。这个函数有五个参数name, location, product_Cdes, qty
。前两个参数name and location
是字符串。最后两个参数product_codes and qty
分别是一个字符串数组和一个数字数组。
const product_codes = ['wrwewe', 'drgrd'];
const qty = [3, 5];
c_order(mj: string, kolkata: string, product_codes: string[], qty: number[]) {
// backend logics...
}
我从我的 nestjs 项目中调用这个函数。
const name = 'mj';
const location = 'kolkata';
const product_codes = ['wrwewe', 'drgrd'];
const qty = [3, 5];
return getManager().query(
`SELECT mj_order.c_order(
:NAME,:LOCATION,:PRODUCT_CODES,:QTY
) ORDER FROM DUAL`,
[name, location, product_codes, qty]
);
我收到错误驱动程序错误:[错误:ORA-01484:数组只能绑定到 PL/SQL 语句]
在我的终端中,我的查询如下
'SELECT mj_order.c_order(\n' +
' :NAME,:LOCATION,:PRODUCT_CODES,:QTY) order FROM DUAL',
parameters: [
'mj',
'kolkata',
['wrwewe', 'drgrd'],
[3, 5],
],
请帮助我无法弄清楚如何解决数组的这种绑定。我已经浏览了oracle-node-db 文档,但仍然无法获得它。
当我在我的函数上运行 DESCRIBE 时,我得到以下信息
FUNCTION UPLOAD_OD RETURNS REF CURSOR
Argument Name Type In/Out
Default?
------------------------------ ----------------------- ------ ----
P_COM VARCHAR2(2) IN
P_USER VARCHAR2(10) IN
P_CUST IN
P_PRODUCT IN
P_UNIT IN
P_QTY IN
P_RATE IN
P_DELIVERY_DATE IN
P_PO_NUMBER IN
P_SEND_DEPT IN
P_ERGENT_STATUS IN