首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PLSQL在ajax回调中的工作不正确。

PLSQL在ajax回调中的工作不正确。
EN

Stack Overflow用户
提问于 2022-10-14 07:00:40
回答 1查看 64关注 0票数 3

下面是甲骨文ajax回调过程:

代码语言:javascript
复制
DECLARE
    inspection_id number;
    inner_id number;
BEGIN
    inspection_id := apex_application.g_x01;
    inner_id := apex_application.g_x02;

    apex_debug.info('=====================================');
    apex_debug.info('DELETE ENTRY WITH INSPECTION_ID: '||inspection_id||' AND INNER_ID: '||inner_id);
    DELETE FROM CHLI_IMAGES WHERE (INSPECTION_ID = inspection_id AND INNER_ID = inner_id);
    apex_debug.info('ROWS DELETED '|| SQL%ROWCOUNT);

    apex_json.open_object;
    apex_json.write('success', true);
    apex_json.write('message', sqlerrm);
    apex_json.write('INSPECTION_ID', inspection_id);
    apex_json.write('INNER_ID', inner_id);
    apex_json.write('result', true);
    apex_json.close_object;
EXCEPTION
    WHEN OTHERS THEN
        apex_json.open_object;
        apex_json.write('success', false);
        apex_json.write('message', sqlerrm);
        apex_json.close_object;
END;

这里的js把它叫做:

代码语言:javascript
复制
apex.server.process("DeleteFromDB", {
                            x01: 0,   //inspection_id
                            x02: 2,   //inner_id
                        }, {
                            success: function (pData) {
                                console.log(pData);
                                if (pData.success === true) {
                                    resolve(true);
                                }
                            },
                            error: function (request, status, error) {
                                console.log(request);
                                resolve(false);
                            }
                        });    

真正令人毛骨悚然的是,它并不像预期的那样起作用。这段代码不仅删除了inespection =0& inner_id = 2的行,还删除了表中的其他行。两个ids正确地启动到我调试过程中的进程。JS片段在异步循环中,但我在调试中也检查了它只运行了一次。

令人毛骨悚然的是,它只适用于这条静态线:

代码语言:javascript
复制
DELETE FROM CHLI_IMAGES WHERE (INSPECTION_ID = 0 AND INNER_ID = 2);    

甲骨文先端有错误吗?还是我总是一次又一次地忽略一些事情。

提前谢谢你,

菲利普。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-17 21:05:36

问题在于:

代码语言:javascript
复制
DELETE FROM CHLI_IMAGES WHERE (INSPECTION_ID = inspection_id AND INNER_ID = inner_id);

由于语言不区分大小写,这就意味着inspection_id和inner_id本身是相等的,即null。给变量不同的名称,例如:

代码语言:javascript
复制
declare
    l_inspection_id number;
    l_inner_id number;
begin
    l_inspection_id := apex_application.g_x01;
    l_inner_id := apex_application.g_x02;

    apex_debug.info('=====================================');
    apex_debug.info('DELETE ENTRY WITH INSPECTION_ID: '|| l_inspection_id ||' AND INNER_ID: '||l_inner_id);
    delete chli_images i where i.inspection_id = l_inspection_id and i.inner_id = l_inner_id;
    ...
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74065473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档