Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Ví dụ về Oracle WHILE LOOP

Trong Oracle PL / SQL, câu lệnh WHILE LOOP thực thi đoạn mã được viết giữa WHILE LOOP và END LOOP cho đến khi điều kiện là đúng. Dưới đây, tôi đưa ra một số ví dụ cho câu lệnh Oracle WHILE LOOP.

Cú pháp

WHILE logical_condition LOOP
-- some PL/SQL code
END LOOP;

Ví dụ về Oracle WHILE LOOP

1. Lặp lại 10 lần và in bảng

Trong ví dụ sau, WHILE LOOP sẽ thực hiện các câu lệnh cho đến khi giá trị của biến n_num nhỏ hơn hoặc bằng 10. Nó sẽ in ra bảng 2 bằng cách tăng giá trị của biến n_num với 1 cho mỗi lần lặp của vòng lặp.

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;
/

Đầu ra:

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.

Đừng quên tăng giá trị của biến n_num để nó có thể đạt tới 10, nếu không nó sẽ là vòng lặp vô hạn.

2. Vòng lặp cho đến khi Giá trị biến Boolean là TRUE

Trong ví dụ sau, nó sẽ lặp cho đến khi giá trị của biến boolean b_run là TRUE và sẽ in ra giá trị của biến n_num bằng cách tăng nó với 1 cho mỗi lần lặp và khi giá trị của biến n_num lớn hơn 5 thì sẽ đặt biến b_run thành FALSE , để WHILE LOOP có thể hoàn thành công việc của nó.

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;
/

Đầu ra:

1 Times
2 Times
3 Times
4 Times
5 Times
PL/SQL procedure successfully completed.

Đối với điều này, đừng quên đặt giá trị biến b_run thành FALSE, nếu không nó sẽ là vòng lặp vô hạn. Bạn cũng có thể viết exit; thay vì b_run:=FALSE; câu lệnh để thoát khỏi vòng lặp .

Xem thêm:

  • Ví dụ về Oracle FOR LOOP REVERSE
  • Chương trình PL / SQL để in chi tiết nhân viên
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hàm tương đương cho DATEADD () trong Oracle

  2. Làm việc với các sự kiện trong Cơ sở hạ tầng đám mây Oracle Phần 1:khái niệm cơ bản về dịch vụ

  3. Cách giải quyết ORA-29283:hoạt động tệp không hợp lệ

  4. Agent Decomission trong EM13c

  5. Nhập tệp trong Oracle Apex bằng wwv_flow_files