Oracle PL / SQLでは、FOR LOOP with REVERSE句を使用して、ループの反復を逆の順序で繰り返します。以下は、 REVERSE FOR LOOPの構文と例です。 。
構文
FOR n IN REVERSE start_number .. end_number LOOP -- statement to execute in every iteration END LOOP;
Oracle FORLOOPREVERSEの例
1。番号を逆の順序で印刷する
次の例では、1から5までの数字を逆の順序で出力します。
SET SERVEROUTPUT ON; BEGIN FOR i IN REVERSE 1 .. 5 LOOP DBMS_OUTPUT.put_line (i); END LOOP; END; /
出力:
5 4 3 2 1 PL/SQL procedure successfully completed.
2。日付を逆順に印刷
次の例では、2018年1月1日から2018年1月5日までの日付を逆の順序で印刷します。 FOR LOOPは数値をインクリメントまたはデクリメントするだけなので、ここで少し注意が必要です。最初に日付を数値に変換してから、印刷時に日付に変換し直します。
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; /
出力:
05/01/2018 04/01/2018 03/01/2018 02/01/2018 01/01/2018 PL/SQL procedure successfully completed.
関連項目:
- Oracle TO_CHAR(number)の例
- Oracle TO_CHAR(date)の例
- OracleTO_DATE関数の例