Oracle APEX 在尝试获取表格形式的禁用字段的值时出现错误 'NO DATA FOUND'

Oracle APEX gives error 'NO DATA FOUND' when trying to fetch value of disabled field of tabular form

我正在尝试使用 oracle apex 进程的更新查询来更新 table。为此,我需要从表格形式中获取一个值。但是该字段当前已禁用(不是 editable,值仍然存在),我在这里遇到错误 'ORA-01403: no data found'。如果我启用了那个字段,那么问题就来了(但是字段将是 editable,我不想让那个字段成为 editable)。

该数据(禁用数据)已经保存在 table(在该字段被禁用之前)。现在我已经写了一个绕过那个错误的条件(比如。IF APEX_APPLICATION.G_F03(i) IS NOT NULL THEN)。但我仍然遇到同样的错误(如上所述)。

因此,如下面的代码所示,因为 apex_application.g_f03(i) 被禁用,它给我错误 'ORA-01403: no data found',而 apex_application.g_f04(i) 没有给我任何错误。如果我启用了 apex_application.g_f03(i) 字段,那么错误就会消失。

FOR i IN 1 ..apex_application.g_f01.count LOOP   

        if ((:P2_M1= 'f03') AND (apex_application.g_f03(i) IS NOT NULL)) then 
            ------------------------------------------------------------------------------------
            select  count(*) into v_count from SCHEMA1.TABLE1 
            where   ATTRIBUTE_CODE  =   apex_application.g_f02(i)   
            and     header_id       =   :P2_X_HEADER_ID
            and     rating_001 is not null ;
            ------------------------------------------------------------------------------------
            update  SCHEMA1.TABLE1 
            set     LAST_UPDATE_DATE =  sysdate,
                    LAST_UPDATED_BY  =  :F2221_USER_ID,
                    RATING_001       =  apex_application.g_f03(i),
                    STATUS           =  'NEW' 
            where   ATTRIBUTE_CODE  =   apex_application.g_f02(i)
            and     header_id       =   :P2_X_HEADER_ID;
            --------------------------------------------------------------
        END IF;  

        if ((:P2_M2 = 'f04') AND (apex_application.g_f04(i) IS NOT NULL)) then

            ------------------------------------------------------------------------------------
            select count(*) into v_count from SCHEMA1.TABLE1 
            where  ATTRIBUTE_CODE   =   apex_application.g_f02(i)   
            and    header_id        =   :P2_X_HEADER_ID
            and    rating_002 is not null ;    
            ------------------------------------------------------------------------------------
            update  SCHEMA1.TABLE1 
            set     LAST_UPDATE_DATE=   sysdate,
                    LAST_UPDATED_BY =   :F2221_USER_ID,
                    RATING_002      =   apex_application.g_f04(i),
                    STATUS          =   'NEW' 
            where   ATTRIBUTE_CODE  =   apex_application.g_f02(i)   
            and     header_id       =   :P2_X_HEADER_ID;
            ------------------------------------------------------------------------------------

        END IF; 

    end loop; 

我希望获得此 apex_application.g_f03(i) 字段的值(即使它被禁用)或绕过它。

这是任何 HTML 形式的标准行为,而不仅仅是 APEX。如果任何输入设置为 disabled,则在提交表单时不会发布其值。如果您可以将其设置为 readonly,那么用户仍然无法编辑它,但它的值将在提交时发布。