Я пытаюсь обновить таблицу, используя запрос на обновление из процесса Oracle Opex.Для этого мне нужно было получить значение из табличной формы.Но это поле в настоящее время отключено (недоступно для редактирования, значение все еще существует), и здесь я получаю сообщение об ошибке «ORA-01403: данные не найдены».Если я включил это поле, то проблема исчезла (но поле будет редактируемым, я не хочу делать это поле редактируемым).
Эти данные (данные отключены) уже сохраняются в таблице (до этого полястановится инвалидом).Теперь я написал условие для обхода этой ошибки (например, ЕСЛИ APEX_APPLICATION.G_F03 (i) НЕ ПУСТО ПОТОМ).Но все же я получаю эту же ошибку (упомянутую выше).
Так, как показано в приведенном ниже коде 'coz of apex_application.g_f03 (i) отключен, он выдаёт мне ошибку' ORA-01403: данные не найдены ', тогда как 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) (даже если оно отключено)или обойти его.