<a href="javascript:passBack('');">Это строка с ключом NULL</a>
В функцию passBack передаётся один фактический параметр, хотя формальных там два. И вот второй, который отвечает за ключ списка, будет неопределённым. Поэтому при сабмите мы запишем в значение переменной для этого элемента undefined, и, соответственно, произойдёт ошибка при выполнении запроса, определяющего LOV.
Решение: 0. Поменять запрос LOV, добавив в него
select 'Это строка с ключом NULL' d, null r from dual union all
1. Добавить Computation на страницу, где можно выбирать значение с ключом NULL, для элемента, основанного на этом LOV, заменяя его значение либо функцией:
FUNCTION f_lov_null(p_item_name IN VARCHAR2) Return VARCHAR2 IS
BEGIN
IF v(p_item_name) = 'undefined' THEN
Return(NULL);
ELSE
return(v(p_item_name));
END IF;
END;
либо каждый раз конкретно:
nullif(lower(v('YOUR_ITEM_NAME')), 'undefined')
Мне пока хватило варианта с nullif.
Спасибо!
ОтветитьУдалитьДобрый день!
ОтветитьУдалитьУ меня на LOV основан Report column. Ни для него, ни для Report'а computations не предусмотрено. Подскажите, к чему привязать вызов функции или тот же nullif, чтобы заменить значение перед сабмитом?
Привет!
УдалитьУкажите, пожалуйста, версию APEX, тип отчёта, тип отображения столбца. Возможно, этот баг уже исправлен.