Di Oracle PL/SQL, FOR LOOP dengan klausa REVERSE digunakan untuk mengulangi iterasi loop dalam urutan terbalik. Berikut ini adalah sintaks dan contoh untuk REVERSE FOR LOOP .
Sintaks
FOR n IN REVERSE start_number .. end_number LOOP -- statement to execute in every iteration END LOOP;
Contoh Oracle FOR LOOP REVERSE
1. Cetak Nomor dalam Urutan Terbalik
Pada contoh berikut, akan mencetak angka dari 1 hingga 5 dalam urutan terbalik.
SET SERVEROUTPUT ON; BEGIN FOR i IN REVERSE 1 .. 5 LOOP DBMS_OUTPUT.put_line (i); END LOOP; END; /
Keluaran:
5 4 3 2 1 PL/SQL procedure successfully completed.
2. Tanggal Cetak dalam Urutan Terbalik
Dalam contoh berikut, ia akan mencetak tanggal dari 1 Jan 2018 hingga 5 Jan 2018 dalam urutan terbalik. Inilah bagian yang sedikit rumit, karena FOR LOOP hanya menambah atau mengurangi angka, jadi pertama-tama saya mengonversi tanggal menjadi angka, lalu mengonversi kembali ke tanggal saat mencetak.
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; /
Keluaran:
05/01/2018 04/01/2018 03/01/2018 02/01/2018 01/01/2018 PL/SQL procedure successfully completed.
Lihat juga:
- Contoh Oracle TO_CHAR(angka)
- Contoh Oracle TO_CHAR(tanggal)
- Contoh Fungsi Oracle TO_DATE