Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Exemplo Oracle FOR LOOP REVERSE


No Oracle PL/SQL, a cláusula FOR LOOP com REVERSE é usada para repetir a iteração do loop na ordem inversa. A seguir estão a sintaxe e os exemplos para REVERSE FOR LOOP .

Sintaxe

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

Exemplos do Oracle FOR LOOP REVERSE

1. Imprimir número na ordem inversa


No exemplo a seguir, ele imprimirá o número de 1 a 5 na ordem inversa.
SET SERVEROUTPUT ON;
BEGIN
FOR i IN REVERSE 1 .. 5
LOOP
DBMS_OUTPUT.put_line (i);
END LOOP;
END;
/

Saída:

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

2. Imprimir data na ordem inversa


No exemplo a seguir, ele imprimirá a data de 1º de janeiro de 2018 a 5 de janeiro de 2018 na ordem inversa. Aqui está a pequena parte complicada, porque FOR LOOP apenas aumenta ou diminui os números, então primeiro estou convertendo a data em um número e depois convertendo de volta para a data ao 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;
/

Saída:

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

Veja também:

  • Exemplos do Oracle TO_CHAR(número)
  • Exemplos do Oracle TO_CHAR(data)
  • Exemplos de funções do Oracle TO_DATE