Ada Barang antar-jemput . Di sisi kiri, Anda akan menampilkan daftar semua karyawan. Tombol item memungkinkan Anda untuk memindahkan semua (atau hanya sebagian) ke sisi kanan item. Setelah Anda mengirimkan halaman, daftar ID karyawan disimpan ke dalam kolom tabel dalam bentuk nilai yang dipisahkan titik dua, misalnya
6547:8879:5587:9987
Ini adalah cara sederhana untuk melakukannya. Namun, sekali Anda harus benar-benar melakukan sesuatu dengan nilai-nilai itu, Anda harus membaginya menjadi beberapa baris. Tidak masalah, meskipun. Berikut pertanyaannya:
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>
Atau, Anda dapat membuat formulir tabel yang juga menampilkan semua karyawan dan memiliki kotak centang di awal setiap baris. Anda kemudian akan membuat proses yang - dalam satu lingkaran - menyimpan nilai yang dipilih ke dalam tabel sementara Anda sebutkan. Misalnya:
-- 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;