sql >> Database >  >> RDS >> Oracle

Hoe maak en gebruik je een meerkeuzelijst in APEX ORACLE?

Daar is het Shuttle-item . Aan de linkerkant zou u een lijst met alle werknemers weergeven. Met itemknoppen kunt u alle (of slechts enkele) naar de rechterkant van het item verplaatsen. Nadat u de pagina heeft ingediend, wordt de lijst met werknemers-ID's opgeslagen in een tabelkolom in de vorm van door dubbele punten gescheiden waarden, bijvoorbeeld

6547:8879:5587:9987

Dit is een eenvoudige manier om dat te doen. Echter, zodra u daadwerkelijk doe iets met die waarden, moet je ze in rijen splitsen. Geen probleem echter. Hier is een vraag:

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>

Of u kunt een tabelvorm maken waarin ook alle werknemers worden weergegeven en met selectievakjes aan het begin van elke regel. U zou dan een proces maken dat - in een lus - geselecteerde waarden opslaat in een tijdelijke tabel je noemde. Bijvoorbeeld:

-- 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;


  1. Verwijzend naar sessievariabelen (\set var='value') uit PL/PGSQL

  2. MariaDB - INNODB slaat de nummerreeks over tijdens het maken van incrementele records - waarom?

  3. Hoe EDB de leider werd in de Postgres-markt

  4. MYSQL Dump alleen bepaalde rijen