यह है शटल आइटम . बाईं ओर, आप सभी कर्मचारियों की सूची प्रदर्शित करेंगे। आइटम बटन आपको आइटम के दाईं ओर सभी (या उनमें से केवल कुछ) को स्थानांतरित करने की अनुमति देते हैं। एक बार जब आप पेज सबमिट कर देते हैं, तो कर्मचारी आईडी की सूची कोलन से अलग किए गए मानों के रूप में एक टेबल कॉलम में स्टोर हो जाती है, उदाहरण के लिए
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;