sql >> Base de Datos >  >> RDS >> Oracle

Oracle FOR LOOP REVERSE Ejemplo

En Oracle PL/SQL, FOR LOOP con la cláusula REVERSE se usa para repetir la iteración del bucle en orden inverso. Los siguientes son la sintaxis y los ejemplos de REVERSE FOR LOOP .

Sintaxis

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

Oracle FOR LOOP REVERSE Ejemplos

1. Imprimir número en orden inverso

En el siguiente ejemplo, imprimirá el número del 1 al 5 en orden inverso.

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

Salida:

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

2. Imprimir fecha en orden inverso

En el siguiente ejemplo, imprimirá la fecha del 1 de enero de 2018 al 5 de enero de 2018 en orden inverso. Aquí está la pequeña parte complicada, porque FOR LOOP solo incrementa o decrementa los números, así que primero convierto la fecha en un número y luego vuelvo a convertir la fecha al imprimir.

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

Salida:

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

Ver también:

  • Ejemplos de Oracle TO_CHAR(número)
  • Ejemplos de Oracle TO_CHAR(fecha)
  • Ejemplos de funciones de Oracle TO_DATE