Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle FOR LOOP REVERSE Exemple

Dans Oracle PL/SQL, FOR LOOP avec la clause REVERSE est utilisée pour répéter l'itération de la boucle dans l'ordre inverse. Voici la syntaxe et les exemples pour REVERSE FOR LOOP .

Syntaxe

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

Exemples Oracle FOR LOOP REVERSE

1. Imprimer le numéro dans l'ordre inverse

Dans l'exemple suivant, il imprimera le nombre de 1 à 5 dans l'ordre inverse.

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

Sortie :

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

2. Imprimer la date dans l'ordre inverse

Dans l'exemple suivant, il imprimera la date du 1er janvier 2018 au 5 janvier 2018 dans l'ordre inverse. Voici la petite partie délicate, car FOR LOOP ne fait qu'augmenter ou décrémenter les nombres, donc je convertis d'abord la date en nombre, puis je reconvertis à la date lors de l'impression.

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

Sortie :

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

Voir aussi :

  • Exemples d'Oracle TO_CHAR(nombre)
  • Exemples d'Oracle TO_CHAR(date)
  • Exemples de fonctions Oracle TO_DATE