Табличная форма (та, которая содержит несколько строк) основана на некоторой таблице, я полагаю.Давайте назовем это FORM_TBL
.Кроме того, предположим, что имя таблицы, в которой содержатся опубликованные вами данные, называется STUD_TBL
.
. Простой способ - опубликовать данные, введенные в форму (что означает, что они окажутся втаблица, но не будет зафиксирована, и никто, кроме вас, не увидит эти строки), а затем - с помощью оператора set INTERSECT
- найдет общие значения.Это будет триггер WHEN-BUTTON-PRESSED
:
declare
retval varchar2(200);
begin
post;
select listagg(stud_id, ',') within group (order by stud_id)
into retval
from (select stud_id from stud_tbl
intersect
select s_id from form_tbl
);
message('Common values: ' || retval);
end;
Если ваша версия Forms не поддерживает LISTAGG
, вы можете сделать это в цикле:
declare
retval varchar2(200);
begin
post;
for cur_r in (select stud_id from stud_tbl
intersect
select s_id from form_tbl
)
loop
retval := retval ||', '|| cur_r.stud_id;
end loop;
message('Common values: ' || retval);
end;
В противном случае, еслиPOST
не удовлетворяет вашим потребностям, вам придется пройтись по всем строкам в форме и проверить, существуют ли они в STUD_TBL
или нет.