sql >> Databáze >  >> RDS >> Oracle

Jak vytvořit a používat vícevýběrový seznam v APEX ORACLE?

Je zde položka Shuttle . Na levé straně byste zobrazili seznam všech zaměstnanců. Tlačítka položek umožňují přesunout všechna (nebo jen některá) na pravou stranu položky. Jakmile stránku odešlete, seznam ID zaměstnanců se uloží do sloupce tabulky ve formě hodnot oddělených dvojtečkou, například

6547:8879:5587:9987

Toto je jednoduchý způsob, jak toho dosáhnout. Jednou to však skutečně musíte udělat něco s těmito hodnotami, musíte je rozdělit do řádků. To však není problém. Zde je dotaz:

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>

Nebo můžete vytvořit tabulkový formulář, který také zobrazuje všechny zaměstnance a má zaškrtávací políčka na začátku každého řádku. Pak byste vytvořili proces, který – ve smyčce – ukládá vybrané hodnoty do dočasné tabulky zmínil jsi. Například:

-- 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. Zaznamenejte konkrétní postgresql dotaz pomocí pg-promise

  2. Nahraďte znaky unicode v PostgreSQL

  3. Agregace dat s OVER PARTITION podle data

  4. Chyba Xmlparserv2 při nasazení aplikace v jboss, Instalace modulu Oracle ojdbc ve webové aplikaci JBoss pro Java