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

Oracle FOR LOOP REVERSE Eksempel

I Oracle PL/SQL bruges FOR LOOP med REVERSE-sætning til at gentage loop-iteration i omvendt rækkefølge. Følgende er syntaksen og eksemplerne for REVERS FOR LOOP .

Syntaks

FOR n IN REVERSE start_number .. end_number LOOP
-- statement to execute in every iteration
END LOOP;

Eksempler på Oracle FOR LOOP REVERSE

1. Udskriv nummer i omvendt rækkefølge

I det følgende eksempel vil den udskrive tallet fra 1 til 5 i omvendt rækkefølge.

SET SERVEROUTPUT ON;
BEGIN
FOR i IN REVERSE 1 .. 5
LOOP
DBMS_OUTPUT.put_line (i);
END LOOP;
END;
/

Output:

5
4
3
2
1
PL/SQL procedure successfully completed.

2. Udskriv dato i omvendt rækkefølge

I det følgende eksempel udskrives datoen fra 1. januar 2018 til 5. januar 2018 i omvendt rækkefølge. Her er den lille vanskelige del, for FOR LOOP øger eller formindsker jeg kun tallene, så først konverterer jeg datoen til et tal og konverterer derefter tilbage til datoen, når jeg udskriver.

SET SERVEROUTPUT ON;
DECLARE
start_date DATE := '01jan2018';
end_date DATE := '05jan2018';
BEGIN
FOR i IN REVERSE TO_CHAR (start_date, 'yyyymmdd') .. TO_CHAR (end_date,
'yyyymmdd')
LOOP
DBMS_OUTPUT.put_line (TO_CHAR (TO_DATE (i, 'yyyymmdd'), 'dd/mm/yyyy'));
END LOOP;
END;
/

Output:

05/01/2018
04/01/2018
03/01/2018
02/01/2018
01/01/2018
PL/SQL procedure successfully completed.

Se også:

  • Eksempler på Oracle TO_CHAR(tal)
  • Eksempler på Oracle TO_CHAR(dato)
  • Oracle TO_DATE-funktionseksempler
  1. Indsamlingstider for Spotlight Cloud Alarmer

  2. Tilknytning af PostgreSQL JSON-kolonne til en Hibernate-enhedsegenskab

  3. hvordan man Flashback når vi har dataguard

  4. Hvordan man bedst får nogens 'rang' fra en scoretabel med php og mysql uden looping