Oracle Apex 20.1错误:处理验证时出错

Oracle Apex 20.1 Error: Error processing validation(Oracle Apex 20.1错误:处理验证时出错)

本文介绍了Oracle Apex 20.1错误:处理验证时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试为oracle top上的应用程序中的页面创建验证。下面是我拥有的pl/sql函数体(返回布尔值):

declare v_equipid integer;
begin
        SELECT count(*) into v_equipid from equipment
        WHERE equipstatus = 'available' and equipID = :P3_EquipID;

    if v_equipid = 1 then
        return true;
    else
        return false;
    end if;
end; 

检查提交的EquipID是否有EquipStatus=‘Available’。在我运行应用程序并提交表单后,它显示以下错误:

错误:处理验证时出错。

  • IS_INTERNAL_ERROR:TRUE
  • IS_COMMON_RUNTIME_ERROR:FALSE
  • APEX_ERROR_CODE:APEX.VALIDATION.UNHANDLED_ERROR
  • ora_sqlcode:-6502
  • ora_sqlerrm:ORA-06502:PL/SQL:数字或值错误 ORA-06512:AT&Quot;APEX_200100。WWV_FLOW_VALIDATION&QOOT;,第846行 ORA-06512:AT&Quot;APEX_200100。WWV_FLOW_VALIDATION&QOOT;第846行
  • ERROR_BACKTRACE:ORA-06512:at";APEX_200100。WWV_FLOW_VALIDATION";,第846行 ORA-06512:AT&Quot;APEX_200100。WWV_FLOW_VALIDATION&QOOT;,第846行 ORA-06512:AT&QOOT;APEX_200100。WWV_FLOW_VALIDATION&QOOT;,第1029行

我不知道如何解决这个问题,非常感谢您的帮助。提前感谢您!

推荐答案

在APEX进行开发的关键是调试您自己的代码。这需要一点时间来适应。关于如何调试您的顶尖应用程序并检测您的pl/sql代码的研究,在Web上有大量的文档可用。

您可以只通过在SQL研讨会中运行pl/sql来调试验证。将RETURN TRUE/FALSE语句替换为dbms_output.put_line('true/false')以获得结果。在SQL研讨会中运行它将给出准确的行号。ORA-06502通常意味着为NUMBER类型的变量或列分配数据类型VARCHAR2的值(或不能转换回NUMBER的其他数据类型)。

请确保在将代码移回顶点时再次删除DBMS_OUTPUT语句。

您还可以使用APEX_DEBUG在APEX中调试您的进程,请查看documentation以获得功能的完整概述,如下所示:

DECLARE
  v_equipid NUMBER; --integer is deprecated, should not be used
BEGIN
  -- put double quotes around the %0 to make any trailing/leading characters visible.
  apex_debug.info(
      p_message => 'Start of validation,  P3_EQUIPID = "%0"',
      p0        => :P3_EQUIPID);
  SELECT COUNT(*)
    INTO v_equipid
    FROM equipment
   WHERE equipstatus = 'available' AND
         equipid = :P3_EQUIPID;
  apex_debug.info(
      p_message => 'After SELECT INTO,  v_equipid = "%0"',
      p0        => v_equipid);
  IF v_equipid = 1 THEN
    RETURN true;
  ELSE
    RETURN false;
  END IF;
END;
在开发人员工具栏中启用调试,并调查页面的调试。您在其中输入的消息应该在调试日志中可用。引发错误后放入代码中的消息将不可见,因为该代码将不会执行。

这篇关于Oracle Apex 20.1错误:处理验证时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:Oracle Apex 20.1错误:处理验证时出错

基础教程推荐