W Oracle PL/SQL FOR LOOP z klauzulą REVERSE służy do powtarzania iteracji pętli w odwrotnej kolejności. Poniżej znajduje się składnia i przykłady dla REVERSE FOR LOOP .
Składnia
FOR n IN REVERSE start_number .. end_number LOOP -- statement to execute in every iteration END LOOP;
Oracle FOR LOOP Przykłady
1. Wydrukuj numer w odwrotnej kolejności
W poniższym przykładzie wydrukuje liczbę od 1 do 5 w odwrotnej kolejności.
SET SERVEROUTPUT ON; BEGIN FOR i IN REVERSE 1 .. 5 LOOP DBMS_OUTPUT.put_line (i); END LOOP; END; /
Wyjście:
5 4 3 2 1 PL/SQL procedure successfully completed.
2. Wydrukuj datę w odwrotnej kolejności
W poniższym przykładzie wydrukuje datę od 1 stycznia 2018 do 5 stycznia 2018 w odwrotnej kolejności. Oto mała trudna część, ponieważ FOR LOOP tylko zwiększa lub zmniejsza liczby, więc najpierw konwertuję datę na liczbę, a następnie konwertuję z powrotem na datę podczas drukowania.
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; /
Wyjście:
05/01/2018 04/01/2018 03/01/2018 02/01/2018 01/01/2018 PL/SQL procedure successfully completed.
Zobacz też:
- Oracle TO_CHAR(liczba) Przykłady
- Oracle TO_CHAR(data) Przykłady
- Przykłady funkcji Oracle TO_DATE
-
Co zrobić, jeśli podczas korzystania ze sterownika Easysoft Oracle ODBC w wersji OCI nie można otworzyć pliku obiektu współdzielonego?
-
Dlaczego klauzula Oracle IN ma limit 1000 tylko dla danych statycznych?
-
CONNECT BY lub zapytania hierarchiczne w RDBMS innych niż Oracle
-
Jak utworzyć użytkownika i przyznać uprawnienia w Oracle
-
java - przekazywanie tablicy w procedurze składowanej Oracle