Есть Шаттл .С левой стороны вы бы отобразили список всех сотрудников.Кнопки элементов позволяют перемещать все (или только некоторые из них) к правой стороне элемента.После отправки страницы список идентификаторов сотрудников сохраняется в столбце таблицы в виде значений, разделенных двоеточиями, например
6547:8879:5587:9987
. Это простой способ сделать это.Однако, как только вам нужно что-то сделать с этими значениями, вы должны разделить их на строки.Не проблема, хотя.Вот запрос:
SQL> with emps (shuttle_item) as
2 (select '6547:8879:5587:9987' from dual)
3 select regexp_substr(shuttle_item, '[^:]+', 1, level) one_item
4 from emps
5 connect by level <= regexp_count(shuttle_item, ':') + 1;
ONE_ITEM
---------------------------------------------------------------------
6547
8879
5587
9987
SQL>
Или вы можете создать табличную форму, которая также отображает всех сотрудников и имеет флажки в начале каждой строки.Затем вы создадите процесс, который - в цикле - сохранит выбранные значения во временную таблицу , которую вы упомянули.Например:
-- F01 = row selector. If you check 1st and 3rd row, f01.count = 2 (2 rows checked)
-- f01(1) = 1 (row #1), f01(2) = 3 (row #3)
-- F02 = EMP_ID. f02(1) = EMP_ID that belongs to employee in 1st row,
-- f02(3) = EMP_ID that belongs to emplyee in 3rd row
declare
l_id number;
begin
for j in 1 .. apex_application.g_f01.count
loop
l_id := apex_application.g_f02(apex_application.g_f01(j));
insert into temp_table (emp_id) values (l_id);
end loop;
end;