В настоящее время я создаю приложение в Oracle Apex 5.0.При этом одна из страниц содержит 7 popup lov
(или список выбора), содержащий некоторое значение по умолчанию, которое было получено из более чем 1 таблицы из более чем 1 schemas
.
Теперь моя задачасоздать и применить проверку, которая проверяет, что хотя бы одна из данных popup lov
была изменена (независимо от того, все ли изменения), если нет, то выдается ошибка.
Я создал процедуру внутрипакет и выдать ошибку внутри него (я также создал функцию, которая возвращает значение boolean
), но она не работает вообще.
Я также создал скрытые элементы для каждого popup lov
проверить их независимо, но это не сработало.
Итак, я подумал, может быть, это потому, что return val of lov влияет на мои данные.Итак, я изменил свой пакет, но он также не будет работать.
Вот мой пример кода:
CREATE OR REPLACE package body KPC_CA is
function find_change ( t_per_id KPCPAY.EMP_INF.per_id%type,
shift1 KPCPAY.EMP_INF.shft1%type,
shift2 KPCPAY.EMP_INF.shft2%type,
shift3 KPCPAY.EMP_INF.shft3%type,
wklyoff KPCPAY.EMP_INF.wklyoff%type,
sup_name KPCPAY.EMP_INF.emp_name%type,
sup_token_no KPCPAY.EMP_INF.r_emp_no%type,
loc_desc KPCPAY.EMP_INF.loc_desc%type,
dept_name KPCPAY.EMP_INF.dept_name%type,
sbu KPCPAY.EMP_INF.sbu_id%type,
effective_date date
) return number as
t_shift1 KPCPAY.EMP_INF.shft1%type;
t_shift2 KPCPAY.EMP_INF.shft2%type;
t_shift3 KPCPAY.EMP_INF.shft3%type;
t_wklyoff KPCPAY.EMP_INF.wklyoff%type;
t_sup_name KPCPAY.EMP_INF.emp_name%type;
t_sup_token_no KPCPAY.EMP_INF.r_emp_no%type;
t_location KPCPAY.EMP_INF.loc_desc%type;
t_dept_name KPCPAY.EMP_INF.dept_name%type;
t_sbu KPCPAY.EMP_INF.sbu_id%type;
flag boolean := false;
begin
begin
select shft1, shft2, shft3, wklyoff, loc_desc, r_emp_no,
dept_name into t_shift1, t_shift2, t_shift3, t_wklyoff,
t_location, t_sup_token_no, t_dept_name
from KPCPAY.EMP_INF
where per_id = t_per_id;
select emp_name into t_sup_name
from KPCPAY.EMP_INF
where emp_no = (select r_emp_no
from KPCPAY.EMP_INF
where per_id = t_per_id);
SELECT distinct(decode ( SUBSTR(ORGANIZATION_CODE, 1, 1),
'1','CORP',
'2','ACD',
'3','TRM',
'4','ACR',
'5','RR',
'6','RRS'
)) "decode" into t_sbu
from apps.org_organization_definitions
where ORGANIZATION_ID= (select sbu_id
from kpcpay.emp_inf
where per_id = t_per_id);
end;
begin
if t_shift1 != shift1 then
flag := true;
end if;
if t_shift2 != shift2 then
flag := true;
end if;
if t_shift3 != shift3 then
flag := true;
end if;
if t_wklyoff != wklyoff then
flag := true;
end if;
if t_sup_token_no != sup_token_no then
flag := true;
end if;
if t_sup_name != sup_name then
flag := true;
end if;
if t_location != loc_desc then
flag := true;
end if;
if t_dept_name != dept_name then
flag := true;
end if;
if t_sbu != sbu then
flag := true;
end if;
end;
if flag = true then
return 1;
else
return 0;
-- or raise_application_error
end if;
end find_change;
end KPC_CA;