Dalam Oracle PL/SQL, pernyataan WHILE LOOP mengeksekusi kode yang ditulis antara WHILE LOOP dan END LOOP sampai kondisinya benar. Di bawah ini saya memberikan beberapa contoh untuk pernyataan Oracle WHILE LOOP.
Sintaks
WHILE logical_condition LOOP -- some PL/SQL code END LOOP;
Contoh Oracle WHILE LOOP
1. Ulangi 10 Kali dan Cetak Tabelnya
Pada contoh berikut, WHILE LOOP akan mengeksekusi pernyataan sampai nilai variabel n_num kurang dari atau sama dengan 10. Ini akan mencetak tabel 2 dengan menambah nilai variabel n_num dengan 1 untuk setiap iterasi dari loop.
SET SERVEROUTPUT ON; DECLARE n_num NUMBER; n_table number := 2; BEGIN n_num := 1; WHILE n_num <= 10 LOOP DBMS_OUTPUT.put_line ('2 x ' || n_num || ' = '||(n_table * n_num)); n_num := n_num + 1; END LOOP; END; /
Keluaran:
2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10 2 x 6 = 12 2 x 7 = 14 2 x 8 = 16 2 x 9 = 18 2 x 10 = 20 PL/SQL procedure successfully completed.
Jangan lupa untuk menambah nilai variabel n_num, sehingga bisa mencapai 10, jika tidak maka akan menjadi infinite loop.
2. Melakukan Loop Sampai Nilai Variabel Boolean TRUE
Pada contoh berikut akan melakukan looping hingga nilai variabel b_run boolean bernilai TRUE dan akan mencetak nilai variabel n_num dengan cara menaikkannya dengan 1 untuk setiap iterasi dan ketika nilai variabel n_num lebih besar dari 5 maka variabel b_run akan diset menjadi FALSE , sehingga WHILE LOOP dapat menyelesaikan tugasnya.
SET SERVEROUTPUT ON; DECLARE n_num NUMBER; b_run BOOLEAN := TRUE; BEGIN n_num := 1; WHILE b_run LOOP DBMS_OUTPUT.put_line (n_num || ' Times'); n_num := n_num + 1; IF n_num > 5 THEN b_run := FALSE; END IF; END LOOP; END; /
Keluaran:
1 Times 2 Times 3 Times 4 Times 5 Times PL/SQL procedure successfully completed.
Untuk ini juga, jangan lupa untuk mengatur nilai variabel b_run ke FALSE, jika tidak maka akan menjadi infinite loop. Anda juga dapat menulis keluar; bukannya b_run :=FALSE; pernyataan untuk keluar dari loop .
Lihat juga:
- Contoh Oracle FOR LOOP REVERSE
- Program PL/SQL untuk Mencetak Detail Karyawan