AJAX调用返回服务器错误ORA-01403:没有找到Apex Interactive Grid的数据



我试图借助自定义PLSQL将数据保存到我的表中。插入数据时,我正在遇到" oRA-01403-no数据"错误,但我不知道为什么。

这是我运行的PLSQL自定义过程。感谢您的帮助。

DECLARE
em_id   NUMBER;
BEGIN
   CASE :apex$row_status
      WHEN 'C'
      THEN
         SELECT NVL (MAX (emergency_id), 0) + 1
           INTO em_id
           FROM emp_emergency_contact;
         INSERT INTO emp_emergency_contact
                     (emergency_id, emp_id, emergency_name, emergency_relation
                     )
              VALUES (em_id, :emp_id, :emergency_name, :emergency_relation
                     );
      WHEN 'U'
      THEN
         UPDATE emp_emergency_contact
            SET emergency_name = :emergency_name,
                emergency_relation = :emergency_relation
          WHERE emergency_id = :emergency_id;
      WHEN 'D'
      THEN
         DELETE      emp_emergency_contact
               WHERE emergency_id = :emergency_id;
   END CASE;
END;

到目前为止,我尚未遇到有关如何使用自定义PL/SQL逻辑来处理Apex 5.1交互式网格的任何记录的方法。

您没有发现数据错误,因为预计返回将以某些JSON格式进行。

您提供的示例并不太复杂,可以使用标准" Interactive Grid-自动行处理(DML)"过程完成,这是AJAX方法。如果AJAX调用不重要,则可以使用自定义逻辑创建自己的PL/SQL进程。其中的示例在"示例交互式网格"包应用程序中进行了说明,请查看此应用程序中的"高级>自定义服务器处理"页面。

我同意Scott,您应该使用IDS的序列或身份列。

不完全确定。一个"选择"可以提出no_data_found例外,但您不应该。

话虽如此,您的代码中的任何地方都不应有max(id)+1。这是一个错误。改用序列或身份列。

我已经得到了很多次,所以我要做的第一件事是查看我的网格SQL中的任何列,这些列不是"保存"的一部分,它们来自数据仅有的。我只是再次得到它,这是我作为"数字"列类型的标题排序列。我将其更改为仅显示,现在"保存"起作用。虽然,我已经将列的"源"设置为"仅查询",这也需要。

这是一个令人讨厌的AJAX错误消息至少没有给出导致错误的列名。

希望这对某人有帮助。Billc

插入后添加RETURNING INTO子句。IG期望将主键返回到插入的行查询。

最新更新