node-oracledb 获取输出参数

node-oracledb get the output parameter

我有下面的代码,用于我们带有 IFS 的 ERP 系统。代码在设置所有参数后调用存储过程。 p3 是一个 inout 参数,它 returns 是执行后的一个值。我的问题是如何在程序执行后读取 p3。

 DECLARE
        p0   VARCHAR2(32000);
        p1   VARCHAR2(32000);
        p2   VARCHAR2(32000);
        p3   VARCHAR2(32000);
    BEGIN
        ifsapp.client_sys.clear_attr(p3);
        ifsapp.client_sys.add_to_attr('IZIN_TALEP_NO', '0', p3);
        ifsapp.client_sys.add_to_attr('IZIN_KODU', '01', p3);
        ifsapp.client_sys.add_to_attr('COMPANY_ID', 'XXX', p3);
        ifsapp.client_sys.add_to_attr('EMP_NO', '123', p3);
        ifsapp.client_sys.add_to_attr('CIKIS_TARIHI', '2019-09-13-00.00.00', p3);
        ifsapp.client_sys.add_to_attr('DONUS_TARIHI', '2019-09-21-00.00.00', p3);
        ifsapp.client_sys.add_to_attr('ISE_BASLAMA_TARIHI', '2019-09-22-00.00.00', p3);
        ifsapp.client_sys.add_to_attr('SURE_GUN', '9', p3);
        ifsapp.client_sys.add_to_attr('SURE_SAAT', '0', p3);
        ifsapp.client_sys.add_to_attr('NOTLAR', 'jhfsdkjjhlfdskh g', p3);
        ifsapp.client_sys.add_to_attr('ADRES', '897549875498754', p3);
        ifsapp.TRIFM_IZINLER_API.NEW__(p0, p1, p2, p3, 'CHECK') ;
        DBMS_OUTPUT.PUT_LINE(p3);
    EXCEPTION
        WHEN ifsapp.error_sys.err_security_checkpoint THEN
            RAISE;
        WHEN OTHERS THEN
            ROLLBACK;
            RAISE;
    END;

我也试过这种方法

..... ifsapp.TRIFM_IZINLER_API.NEW__(p0, p1, p2, p3, 'CHECK'); :mm :=p3;

节点代码为

...dbHelper.executeReturn(checkSql, [{
        mm : {
            dir: oracledb.OUT,
            type: oracledb.STRING
        }
    }], req, res, true).then(res => {
        return res;
    });

我收到这个错误

NJS-044: named JSON object is not expected in this context

感谢任何帮助

我通过创建一个扭曲方法并从函数

返回 p3 的函数解决了这个问题
ifsapp.TRIFM_IZINLER_API.NEW__(p0, p1, p2, p3, 'CHECK');
RETURN p3;