Där finns Shuttle-objektet . På vänster sida skulle du visa en lista över alla anställda. Objektknappar låter dig flytta alla (eller bara några av dem) till höger sida av objektet. När du väl har skickat in sidan lagras listan över anställd-ID:n i en tabellkolumn i form av kolonseparerade värden, till exempel
6547:8879:5587:9987
Det här är ett enkelt sätt att göra det. Men när du faktiskt måste göra något med dessa värden måste du dela upp dem i rader. Inget problem dock. Här är en fråga:
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>
Eller så kan du skapa ett tabellformulär som också visar alla anställda och har kryssrutor i början av varje rad. Du skulle sedan skapa en process som - i en loop - lagrar valda värden i en tillfällig tabell du nämnde. Till exempel:
-- 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;