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

Esempio di Oracle FOR LOOP REVERSE

In Oracle PL/SQL, FOR LOOP con clausola REVERSE viene utilizzato per ripetere l'iterazione del ciclo in ordine inverso. Di seguito sono riportati la sintassi e gli esempi per REVERSE FOR LOOP .

Sintassi

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

Esempi Oracle FOR LOOP REVERSE

1. Stampa il numero in ordine inverso

Nell'esempio seguente, stamperà il numero da 1 a 5 in ordine inverso.

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

Uscita:

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

2. Stampa la data in ordine inverso

Nell'esempio seguente, verrà stampata la data dal 1 gennaio 2018 al 5 gennaio 2018 in ordine inverso. Ecco la piccola parte complicata, perché FOR LOOP incrementa o decrementa solo i numeri, quindi prima converto la data in un numero e poi riconverto la data durante la stampa.

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

Uscita:

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

Vedi anche:

  • Esempi di Oracle TO_CHAR(numero)
  • Esempi di Oracle TO_CHAR(data)
  • Esempi di funzioni Oracle TO_DATE