0

我在 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             
4

0 回答 0