sql >> Database >  >> RDS >> Oracle

Oracle FOR LOOP REVERSE Voorbeeld

In Oracle PL/SQL wordt FOR LOOP met REVERSE-clausule gebruikt om de lus-iteratie in omgekeerde volgorde te herhalen. Hieronder volgen de syntaxis en voorbeelden voor REVERSE FOR LOOP .

Syntaxis

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

Oracle FOR LOOP REVERSE Voorbeelden

1. Nummer afdrukken in omgekeerde volgorde

In het volgende voorbeeld wordt het nummer van 1 tot 5 in omgekeerde volgorde afgedrukt.

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

Uitvoer:

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

2. Datum in omgekeerde volgorde afdrukken

In het volgende voorbeeld wordt de datum van 1 januari 2018 tot 5 januari 2018 in omgekeerde volgorde afgedrukt. Hier is het kleine lastige deel, want FOR LOOP verhoogt of verlaagt alleen de getallen, dus eerst converteer ik de datum naar een getal en converteer ik dan terug naar de datum tijdens het afdrukken.

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

Uitvoer:

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

Zie ook:

  • Oracle TO_CHAR(nummer) Voorbeelden
  • Oracle TO_CHAR(date) Voorbeelden
  • Oracle TO_DATE Functievoorbeelden
  1. Overwegingen voor prestaties van Azure SQL Managed Instance

  2. Hoe ISNUMERIC() werkt in SQL Server

  3. ServiceNow integreren met Oracle Identity Cloud Service (IDCS)

  4. Een een-op-twee niet-null-beperking toevoegen in postgresql