sql >> Databáze >  >> RDS >> Oracle

Oracle FOR LOOP REVERSE Příklad

V Oracle PL/SQL se FOR LOOP s klauzulí REVERSE používá k opakování opakování smyčky v obráceném pořadí. Následuje syntaxe a příklady pro REVERSE FOR LOOP .

Syntaxe

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

Příklady Oracle FOR LOOP REVERSE

1. Vytisknout číslo v opačném pořadí

V následujícím příkladu vytiskne číslo od 1 do 5 v opačném pořadí.

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

Výstup:

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

2. Datum tisku v opačném pořadí

V následujícím příkladu vytiskne datum od 1. ledna 2018 do 5. ledna 2018 v opačném pořadí. Zde je malá záludná část, protože FOR LOOP pouze zvyšuje nebo snižuje čísla, takže nejprve převedu datum na číslo a poté při tisku převedu zpět na datum.

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

Výstup:

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

Viz také:

  • Příklady TO_CHAR(číslo) Oracle
  • Příklady Oracle TO_CHAR(datum)
  • Příklady funkcí Oracle TO_DATE
  1. Jak zálohovat databázi Moodle MariaDB

  2. Bylo by možné při provádění PITR pozastavit/obnovit v PostgreSQL?

  3. Chyba instalace klienta Oracle – cesta je příliš dlouhá

  4. Proč se dotaz neuloží do souboru csv, když se to v konzoli postgresql zdá normální