【问题标题】:Interactive Grid (IG) ORA-01403 Error in Oracle APEX 5.1.2Oracle APEX 5.1.2 中的交互式网格 (IG) ORA-01403 错误
【发布时间】:2017-08-15 15:36:16
【问题描述】:

我该如何解决这个{Ajax call returned server error ORA-01403: no data found for} 问题?问题出现了,当我想在查询为 Order_Status_Id=1 的 IG 中设置 Order_Status_Field 值 2 时。

我的 IG 查询是:

SELECT P.ORDER_ID, P.ORDER_STATUS_ID FROM ORDER_DETAILS P WHERE P.ORDER_STATUS_ID=1;

我的工作区名称:ZISHAN

用户:ZISHANIIUC@GMAIL.COM

通过:123

问题页号:3(订单报告)

1.更新订单状态之前:

2。更新订单状态后:

【问题讨论】:

    标签: oracle-apex oracle-apex-5 oracle-apex-5.1


    【解决方案1】:

    我看到您正在使用标准的“交互式网格 - 自动行处理 (DML)”流程,这是一种 AJAX 方法。此顶点行为是使用 json 格式的数据调用 ajax。所以你对你的 sql 查询有一个过滤器

    SELECT T.ORDER_ID,
           T.TABLE_ID,
           T.TAKEN_BY,
           T.ORDER_STATUS_ID,
           T.TOTAL_COST
    FROM ORDER_DETAILS T
     WHERE T.ORDER_STATUS_ID=2
    

    并且您想更新您的过滤器列(数据已更改),似乎 apex 没有找到 prevouis 数据过滤器并返回 no_data_found (不太确定会发生什么),但解决方案:.

    1. 将过滤器放入交互式网格 --> 操作按钮 ---> 过滤器 或
    2. 编写您自己的自定义流程

    【讨论】:

    • 您是对的 - 在处理完更改后,APEX 尝试使用此查询(在调试消息中看到)重新查询该行(可能是刷新它):...Execute Statement: select "ORDER_ID","TABLE_ID","TAKEN_BY","ORDER_STATUS_ID","TOTAL_COST" from(SELECT P.ORDER_ID, P.TABLE_ID, P.TAKEN_BY, P.ORDER_STATUS_ID, P.TOTAL_COST FROM ORDER_DETAILS P WHERE P.ORDER_STATUS_ID=1 )q where "ORDER_ID"=:apex$1
    【解决方案2】:

    当我尝试从 apex 创建的“交互式网格 - 自动行处理 (DML)”中更改流程时,对于我自己的自定义 PL/SQL 代码,我需要从查询中选择一列作为主要列键,然后我可以使用此博客上的 pl/sql 自定义过程: https://mikesmithers.wordpress.com/2019/07/23/customizing-dml-in-an-apex-interactive-grid/ 没有找不到数据错误。

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
    猜你喜欢
    • 2019-01-26
    • 2021-08-06
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    相关资源
    最近更新 更多