" detail":" ORA-02291:违反完整性约束 - 未找到父密钥

时间:2017-11-06 16:09:07

标签: node.js oracle node-oracle oracledb-npm

我正在尝试将一个动态值插入到一个过程中,每次运行它时都会出现此错误。

  

"详细信息":" ORA-02291:违反了完整性约束(VIEW.AA_DEFAULT_APP_LIST_FK_AA_APP) - 未找到父密钥

这是我的程序。

router.put('/update-applications/', jsonParser, function (req, res) {
    var data = req.body;

    logger.info(pool._logStats());

    logger.info("Begin: " + (new Date().toString()));


    pool.getConnection(function (err, connection) {
        logger.info("Begin Connection: " + (new Date().toString()));
        if (err) {
            logger.error(err.message);
            return;
        }
        var bindvars = {
            appId: '\'' + data.appId + '\'',
            error: {dir: oracledb.BIND_OUT, type: oracledb.STRING, maxSize: 4000}
        };

        logger.info("Bindvars Set: " + (new Date().toString()));

        logger.info('***********************************');
        logger.info('Add Application - PUT');
        logger.info('App ID: ', bindvars.appId);
        logger.info('***********************************');

        logger.info("Begin execute: " + (new Date().toString()));

        connection.execute(
            "BEGIN local.pkg_app.p_ins_app_id(:appId, :error); END;",
            bindvars,
            function (err, result) {
                logger.info(JSON.parse(result.outBinds.error));
                logger.info("End execute: " + (new Date().toString()));
                if (err) {
                    logger.error(err.message);
                    doRelease(connection);
                    return;
                }

                logger.info("Send JSON: " + (new Date().toString()));
                res.json(JSON.parse(result.outBinds.error));
                logger.info("JSON Sent: " + (new Date().toString()));

                doRelease(connection);
            });
    });
});

我在SQL Developer中尝试了这个代码,它对我来说很好..

declare
v_app_id varchar2(10) := 'A123456';
o_error                    VARCHAR2(100) := 'None';
Begin
dbms_output.put_line('START');
local.PKG_APP.p_ins_app_id(v_app_id,o_error );
dbms_output.put_line('END');
dbms_output.put_line(o_error);
end;

请帮忙。

1 个答案:

答案 0 :(得分:0)

通过删除引号来实现它。