LOOP жумлалари жумлалар кетма-кетлигини кўп марта бажариш учун ишлатилади. LOOP жумласининг уч хил шакли мавжуд:
LOOP, WHILE-LOOP, ва FOR-LOOP.
LOOP
LOOP жумласи қуйидаги синтаксисга эга:
LOOP
Жумлалар_кетма_кетлиги
END LOOP;
Ушбу циклик жараёндан EXIT орқали чиқиш мумкин
EXIT
EXIT жумласи шартсиз тарзда LOOP жумласини ишини тугатишга мажбурлайди. Масалан
LOOP
...
IF credit_rating < 3 THEN
...
EXIT; -- циклдан дарҳол чиқади
END IF;
END LOOP;
-- бошқарув шу ерга узатилади
қуйидаги мисол PL/SQL блоки ишини тугатиш учун EXIT жумласидан фойдаланиб бўлмаслигини намойиш этади
BEGIN
...
IF credit_rating < 3 THEN
...
EXIT; -- қоидага хилоф
END IF;
END;
EXIT-WHEN
EXIT-WHEN жумласи LOOP жумласини шартли тарзда тугатишга имкон беради.
LOOP
FETCH c1 INTO ...
EXIT WHEN c1%NOTFOUND; -- шарт рост бўлса, loop тугатилади
...
END LOOP;
CLOSE c1;
EXIT-WHEN жумласи содда IF жумласини алмаштиради:
IF count > 100 THEN | EXIT WHEN count > 100;
EXIT; |
END IF; |
Loop меткалари
Loop меткалаш мумкин:
Мисол 1.
<>
LOOP
sequence_of_statements
END LOOP;
Мисол 2.
<>
LOOP
...
END LOOP my_loop;
<>
LOOP
...
LOOP
...
EXIT outer WHEN ... – иккала loop чиқади
END LOOP;
...
END LOOP outer;
WHILE-LOOP
WHILE-LOOP жумласининг синтаксиси:
WHILE condition LOOP
Жумлалар_кетма_кетлиги
END LOOP;
Агар шарт рост бўлса, жумлалар кетма-кетлиги бажарилади.
Мисол 1.
WHILE total <= 25000 LOOP
...
SELECT sal INTO salary FROM emp WHERE ...
total := total + salary;
END LOOP;
Мисол 2.
LOOP
sequence_of_statements
EXIT WHEN boolean_expression;
END LOOP;
Мисол 3.
done := FALSE;
WHILE NOT done LOOP
sequence_of_statements
done := boolean_expression;
END LOOP;
Мисол 4. Эквивалент мисоллар
WHILE TRUE LOOP | LOOP
... | ...
END LOOP; | END LOOP;
Do'stlaringiz bilan baham: |