Основы (асослар)


Download 0.95 Mb.
bet13/58
Sana28.12.2022
Hajmi0.95 Mb.
#1011518
1   ...   9   10   11   12   13   14   15   16   ...   58
Bog'liq
PL-SQL Маъруза матни

Таъсир қилиш соҳаси


Цикл ўзгарувчиси фақат цикл ичида аниқланган:


FOR ctr IN 1..10 LOOP
...
END LOOP;
sum := ctr - 1; -- қоидага хилоф

Цикл ўзгарувчисини эълон қилиш керак эмас:


DECLARE
ctr INTEGER;
BEGIN
...
FOR ctr IN 1..25 LOOP
...
IF ctr > 10 THEN ... -- refers to loop counter
END LOOP;
END;

Глобал ўзгарувчига мурожаат қилиш учун, меткадан фойдаланишингиз зарур:


<
>
DECLARE
ctr INTEGER;
...
BEGIN
...
FOR ctr IN 1..25 LOOP
...
IF main.ctr > 10 THEN --глобал ўзгарувчига мурожаат
...
END IF;
END LOOP;
END main;

Айнан шу қоидалар ичма-ич жойлашган цикллар учун ҳам ўринлидир:


<>
FOR step IN 1..25 LOOP
FOR step IN 1..10 LOOP
...
IF outer.step > 15 THEN ...
END LOOP;
END LOOP outer;


EXIT жумласидан фойдаланиш


Цикл жараёнини дарҳол бузиш учун EXIT жумласидан фойдаланиш мумкин:


FOR j IN 1..10 LOOP
FETCH c1 INTO emp_rec;
EXIT WHEN c1%NOTFOUND;
...
END LOOP;

EXIT жумласи орқали ичма-ич жойлашган цикллардан ҳам чиқиш имконияти мавжуд:


<>
FOR i IN 1..5 LOOP
...
FOR j IN 1..10 LOOP
FETCH c1 INTO emp_rec;
EXIT outer WHEN c1%NOTFOUND;--иккала циклдан чиқади
...
END LOOP;
END LOOP outer;
-- бошқарув шу ерга узатилади.


Кетма-кет бошқарув: GOTO ва NULL жумлалари

GOTO жумласи


GOTO жумласи меткаланган бўлимга шартсиз равишда ўтиш учун ишлатилади:
Мисол 1.
BEGIN
...
GOTO insert_row;
...
<>
INSERT INTO emp VALUES ...
END;

Мисол 2.


BEGIN
...
<>
BEGIN
UPDATE emp SET ...
...
END;
...
GOTO update_row;
...
END;

Мисол 3.


DECLARE
done BOOLEAN;
BEGIN
...
FOR i IN 1..50 LOOP
IF done THEN
GOTO end_loop;
END IF;
...
<> -- қоидага хилоф
END LOOP; -- бажарилмайдиган жумла
END;

Мисол 4.


FOR i IN 1..50 LOOP
IF done THEN
GOTO end_loop;
END IF;
...
<>
NULL; -- бажариладиган жумла
END LOOP;

Мисол 5.


DECLARE
my_ename CHAR(10);
BEGIN
<>
SELECT ename INTO my_ename FROM emp WHERE ...
BEGIN
...
GOTO get_name;
END;
END;



Download 0.95 Mb.

Do'stlaringiz bilan baham:
1   ...   9   10   11   12   13   14   15   16   ...   58




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling