PL/SQL WHILE Loop 🔄❓
Mentor's Note: The
WHILEloop is a "Look before you leap" loop. It checks the condition before doing any work. If the condition is false at the start, the loop doesn't run even once! 💡
🌟 The Scenario: The Coffee Shop ☕
Imagine you are a waiter serving coffee.
- Condition: Is there a customer in the queue?
- Action: Serve coffee.
- The Loop: As long as there is someone waiting, keep serving. If the shop is empty when you arrive, you do nothing.
💻 1. The Basic Syntax
DECLARE
v_counter NUMBER := 1;
BEGIN
-- 🚦 Check condition FIRST
WHILE v_counter <= 5 LOOP
DBMS_OUTPUT.PUT_LINE('Serving customer: ' || v_counter);
v_counter := v_counter + 1; -- ⚙️ Must increment!
END LOOP;
END;
🛡️ 2. Key Differences (Architect's Note)
- Basic Loop: Runs the code, THEN checks if it should exit. (Guaranteed at least 1 run).
- WHILE Loop: Checks the condition, THEN runs the code. (Can run 0 times).
- The NULL Trap: If the condition in a
WHILEloop evaluates to NULL, Oracle treats it as FALSE and the loop ends immediately.
📊 Comparison Table
| Feature | Basic LOOP | WHILE Loop |
|---|---|---|
| Check Time | At the bottom 🏁 | At the top 🚦 |
| Minimum Runs | 1 | 0 |
| Use Case | When you must run once | When condition is unknown |