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


Download 0.95 Mb.
bet7/58
Sana28.12.2022
Hajmi0.95 Mb.
#1011518
1   2   3   4   5   6   7   8   9   10   ...   58
Bog'liq
PL-SQL Маъруза матни

Номлаш қоидалари


Ўзгармаслар, ўзгарувчилар, курсорлар, курсор ўзгарувчилари, процедуралар, функциялар ва пакетлар каби барча PL/SQL дастури бирликлари ягона номлаш қоидаларига бўйсунадилар. Номлаш содда, мураккаб, узоқланган ёки мураккаб ва узоқланган бўлиши мумкин:


raise_salary(...); -- содда


emp_actions.raise_salary(...); -- мураккаб
raise_salary@newyork(...); -- узоқланган
emp_actions.raise_salary@newyork(...); -- мураккаб ва узоқланга

SQL командаларида локал ва формал ўзгарувчилар жадвал номидан устунлик қилади (агарда улар бир хил номланган бўлса);


Мисол 1.
FOR emp IN 1... 5 LOOP


...
URDATE emp SET bonus = 500 WHERE --нотўғри!
END LOOP; цикл ўзгарувчиси деб тушунилади.
Мисол 2.
P ROCEDURE calc_bonus (emp NUMBER, bonus OUT REAL ) IS
avg_sal REAL;
Нотўғри! BEGIN
SELECT AVG (sal) INTO avg_sal FROM emp WHERE
...
END; формал параметр деб қабул қилади.

Бу ҳолатда жадвал номини фойдаланувчи номини кўрсатиш орқали аниқлаш мумкин:


Мисол 3.

P ROCEDURE calc_bonus (emp.NUMBER, bonus OUT REAL ) IS


Arg_sal REAL;
...
Тўғри! BEGIN
SELECT AVG (sal) INTO avg_sal FROM scott.emp WHERE
...
END;
Жадвал устунларининг номи локал ва формал ўзгарувчилар номидан устунлик қилади ( агарда улар бир хил номланган бўлса);
Мисол 1.

DECLARE
Ename CHAR (10) : = ‘ KING’;


BEGIN
DELETE FROM emp WHERE ename = ename;
...
END;

Ушбу процедура бажарилганда EMP жадвалининг ҳамма қаторлари ўчирилади. Бу ноқулай вазиятдан чиқиш учун еки бошқа ўзгарувчи киритиш лозим:


DECLARE
My-ename CHAR (10);
...
ё ин ки блок меткасини ишлатиш лозим:

 main


DECLARE
Ename CHAR ( 10): = ‘KING’;
BEGIN
DELETE FROM emp WHERE ename = main.ename;
...
END;

ёки қисмдастур номини фойдаланиш мумкин:


PROCEDURE calc_bonus (empno NUMBER, bonus out REAL ) IS


avg_sal REAL;
name CHAR (10);
job CHAR (1S): = ‘SALESMAN’
BEGIN
SELECT AVG (sal) INTO avg_sal FROM emp
WHERE job = cals_bonus.job; /* локал ўзгарувчига мурожаат */
SELECT ename INTO name FROM emp
WHERE empno = cals_bonus.empno: -- параметрга мурожаат
END;

Download 0.95 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   ...   58




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