sql >> Database teknologi >  >> RDS >> Oracle

Forstå Oracle Apex_Application.G_Fnn og hvordan man bruger det

Du er meget tæt på.

select apex_item.checkbox2(10, empno) select_me,
apex_item.text(20, empno) empno,
apex_item.text(30, ename)||apex_item.hidden(50, empno) ename
from emp

Jeg sammenkæder det skjulte element, da jeg ikke vil have det i sin egen kolonne. Roder med layoutet.
Det skjulte element er der også på grund af, hvordan afkrydsningsfelter fungerer. Afkrydsningsfelter indsender kun deres værdier for afkrydsede varer. Dette ville betyde, at array 10 har 3 værdier. De andre arrays ville stadig indeholde værdierne for alle rækker.
Det er derfor, jeg tilføjede den skjulte empno igen:så vi kan matche de kontrollerede værdier med de andre rækker.

Ved indsendelsesprocessen:

DECLARE
   v_empno emp.empno%TYPE; 
   v_ename emp.ename%TYPE;
BEGIN
   --f10: checkbox
   --f20: empno
   --f30: ename
   --f50: empno again
   for i in 1..apex_application.g_f10.count
   loop
      for j in 1..apex_application.g_f50.count loop
         if apex_application.g_f10(i) = apex_application.g_f50(j) 
         then         
            -- access values for the selected rows in the other arrays
            v_empno := apex_application.g_f20(j);
            v_ename := apex_application.g_f30(j);

            apex_debug_message.log_message('Employee: '||v_empno||' - '||v_ename);
         end if;
      end loop;
   end loop;
END;

Kør side, aktiver fejlretning, vælg post 2, 4 og 6, send.

Debug output:

Alt du nu skal gøre er at sætte din behandling i den løkke.




  1. Hvordan kan vi forhindre SQL-injektion fra MySQL?

  2. Slet sætning i SQL er meget langsom

  3. Hukommelsesfejl ved brug af read()-metoden ved læsning af en stor størrelse af JSON-fil fra Amazon S3

  4. Oracle SQL Where-klausul for at finde datoposter, der er ældre end 30 dage