Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Beispiel für Oracle FOR LOOP REVERSE

In Oracle PL/SQL wird FOR LOOP mit REVERSE-Klausel verwendet, um die Schleifeniteration in umgekehrter Reihenfolge zu wiederholen. Im Folgenden finden Sie die Syntax und Beispiele für REVERSE FOR LOOP .

Syntax

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

Oracle FOR LOOP REVERSE-Beispiele

1. Nummer in umgekehrter Reihenfolge drucken

Im folgenden Beispiel wird die Zahl von 1 bis 5 in umgekehrter Reihenfolge ausgegeben.

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

Ausgabe:

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

2. Datum in umgekehrter Reihenfolge drucken

Im folgenden Beispiel wird das Datum vom 1. Januar 2018 bis zum 5. Januar 2018 in umgekehrter Reihenfolge gedruckt. Hier ist der etwas knifflige Teil, denn FOR LOOP erhöht oder verringert nur die Zahlen, also wandle ich zuerst das Datum in eine Zahl um und dann beim Drucken wieder in das Datum umwandeln.

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;
/

Ausgabe:

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

Siehe auch:

  • Oracle TO_CHAR(number) Beispiele
  • Oracle TO_CHAR(date) Beispiele
  • Oracle TO_DATE-Funktionsbeispiele