sql >> Databasteknik >  >> RDS >> Oracle

Hur skapar och använder man en flervalslista i APEX ORACLE?

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;


  1. Spara tabelldata som erhållits när du skrapar en webbsida med casperjs

  2. Främmande nycklar när kaskader inte behövs

  3. Hur uppdaterar man en post i databasen automatiskt?

  4. Laravel sammanfogar med 3 bord