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