Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Contoh Oracle WHILE LOOP

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kueri rekursif SQL pada tabel referensi mandiri (Oracle)

  2. Fungsi String Oracle (Daftar Lengkap)

  3. Oracle PLS-00363:ekspresi '' tidak dapat digunakan sebagai target penugasan

  4. Menggunakan tampilan tanpa kunci utama dengan Entitas

  5. Perbandingan tanggal Oracle rusak karena DST