Download as pdf or txt
Download as pdf or txt
You are on page 1of 21

bUQkZsesfVDl iszfDVlsl

160

v/;k;&6

ih- ,y-@,l- D;q- ,y- dh vk/kqfud vo/kkj.kk


Advance Concept of PL/SQL
dlZ j ,oa mi&ksxzkEl
vksjsdy dks dke djus ds fy, ,d vyx LFkku dh vko;drk iM+rh gS ftldks Private SQL
Areas dk uke fn;k x;k gS A vksjsdy dks ;g LFkku fofHkUu SQL LVsVesUV~l dks dk;kZfUor djus
rFkk fofHkUu Processing Informations dks lqjf{kr j[kus ds fy, pkfg, gksrk gS A
dlZj (Cursor) PL/SQL dh ,d ,slh cukoV ;k lajpuk dk uke gS] tks gesa dke djus ds
LFkkuksa (Work Areas) dks ,d uke nsus rFkk buds vUnj tkudkjh dks lafpr djusdh vuqefr nku
djrk gS A
dlZj ds dkj (Types of Cursor)
dlZj fuEufyf[kr nks dkj ds gksrs gS &
vR;{k dlZlZ (Implicit Cursors) % ;s dlZlZ PL/SQL }kjk vR;{k :i ls mu lHkh
DML LVsVesUV~l rFkk mu ekaxksa ds fy, ?kksf"kr fd, tkrs gS] rks ifj.kke ds :i eas dsoy ,d iafDr
gh ykSVkrs gSaA
R;{k dllZ (Expliclit Cursors) % ;s dlZlZ PL/SQL ksxzke ds Declare Hkkx ds vUnj
R;{k :i ls vU; igpkudrkZvksa (Identifiers) ds lkFk esa ?kksf"kr fd, tkrs gSa A R;{k dlZlZ dks
dsoy ekaxksa ds fy, gh ;ksx esa yk;k tk ldrk gS vkSj ;g bldh vuqefr Hkh nku djrk gS fd
ekax ds foysk.k ds ipkr~ mlls ,d ls vf/kd iafDr;ka Hkh ifj.kke ds :i esa kIr gks ldsa A
vR;{k dlZlZ (Implicit Cursors)
R;sd R;{k :i ls cukbZ xbZ ,slh SQL LVsVesUV~ tks fd fdlh R;{k (Expilcit) dlZj ls tqMh+
gqbZ ugha gS] dks foysf"kr (Process) djus ds fy, vksjsdy vR;{k :i ls ,d dlZj dks [kksyrk gS
rFkk R;sd SQL Statement tks fd Explicitty cuk, x, dlZj ls tqMh+ gqbZ ugha gS mUgsa pykrk
gS A PL/SQL lcls ckn eas ;ksx fd, x, vR;{k dlZj dks SQL dlZj ds uke ls lUnfHkZr djrk
gS A
vR;{k dlZj lcls ckn esa pykbZ xbZ SQL LVsVesUV ds ckjs esa tkudkjh dks kIr djus ds fy,
dlZj ds Attributes dks ;ksx djus dh btktr nsrk gS A PL/SQL fuEufyf[kr Attributes dks nku
djrh gS] tks gesa SELECT LVsVesUV~l ds ifj.kke dk ewY;kadu djus ;ksX; cukrs gS &
SQL%ROWCOUNT

iafDr;ksa dh ml la[;k dks ifj.kkeLo:i nsrk gS tks fd Insert, Update ;k Delete ds pyk,
tkus ij Hkkfor gksus okyh gS vFkok ,d ykbu dh Select LVsVesUV ds }kjk ifj.kkeLo:i vkus
okyh gS A

ih- ,y-@,l- D;q- ,y- dh vk/kqfud vo/kkj.kk

161

mnkgj.k &
SQL> declare
2
result number;
3
vempno number;
4
vsal number;
5
begin
6
SELECT empno, sal into vempno, vsal FROM employee
7
WHERE sal = (SELECT MIN (sal) FROM employee);
8
result := SQL%ROWCOUNT;
9
if result>= 1 then
10
dbms_output.put_line (vempno | | | | vsal);
11
end if ;
12
end ;
13
/
7369 1300
PL/SQL procedure successfully completed.
mijksDr mnkgj.k esa geus SQL%ROWCOUNT Attribute dk ;ksx nkkZ;k gS A bl
mnkgj.k esa geus Number MsVkdkj ds rhu ifjorZukad result, vempno rFkk vsal ?kksfkr fd, gSA
blds ckn PL/SQL CYkkWd ds Begin Hkkx esa ,d Select LVsVesUV ds }kjk Employee Vsfcy ds mu
deZpkfj;ksa ds empno rFkk sal dkWye ds eku dks ifjorZukad vempno rFkk vsal esa lafpr djus dh
ekax dh xbZ gS A bl ekax esa Where krZ esa ,d mi&ekax dh xbZ gS fd sal dkWye dk eku Employee
Vsfcy ds Sal dkWye esa fLFkr U;wure gksuk pkfg, A blds ckn result ifjorZukad esa mi;qZDr ekax ds
ifj.kke SQL%ROWCOUNT Attribute ds cjkcj fd;k x;k gS A
vc if frcU/k dk ;ksx djds ;g tkapk x;k gS fd ;fn result ifjorZukad dk eku 1 vFkkZr
mijksDr Select LVsVesUV ifj.kke ds :i esa dsoy ,d iafDr gh ykSVkrk gS] rks dbms_output.put_line()
QaDku ds }kjk ifjorZukad vempno rFkk vsal ds eku dks ekWuhVj Lhu ij nfkZr djs A
SQL%FOUND
bl Attribute dk ewY;kadu lR; esa rc gksrk gS] tc ;fn ,d Insert, Update vFkok Delete

LVsVesUV ,d vFkok ,d ls vf/kd iafDr;ksa dks Hkkfor djrk gS A ;fn bu LVsVesUV~l ls dksbZ Hkh
iafDr Hkkfor ugha gksrh gS] rks bldk ewY;kadu vlR; (False) gksrk gS A
mnkgj.k &
SQL> SELECT sal FROM employee;
SAL
-------------1300
7000

bUQkZsesfVDl iszfDVlsl
7000
2975
7000
2850
2450
3000
5000
7000
1600
3050
3000
1800
14 rows selected.
SQL> DECLARE
2
var BOOLEAN;
3
BEGIN
4
UPDATE employee SET sal=sal-1000;
5
var :=SQL%FOUND;
6
if var then
7
dbms_output.put_line ( change made);
8
end if;
9
end;
10
/
Change made
PL/SQL procedure successfully completed.
SQL> SELECT sal FROM employee;
SAL
-----------300
6000
6000
1975
6000
1850
1450
2000
4000
6000

162

ih- ,y-@,l- D;q- ,y- dh vk/kqfud vo/kkj.kk

163

600
2050
2000
800
14 rows selected.

mijksDr mnkgj.k esa geus SQL%FOUND Attribute dk ;ksx nkkZ;k gS A bl mnkgj.k


esa geus igys ,d Select LVsVesUV }kjk Employee Vsfcy ds sal dkWye esa fLFkr lHkh ekuksa dks nfkZr
fd;k gS A blds ckn geus Boolean MsVkdkj dk ,d ifjorZukad var ?kksf"kr fd;k gS A blds ckn
PL/SQL CykWd ds Begin Hkkx eas ,d Update LVsVesUV ds }kjk Employee Vsfcy ds lHkh deZpkfj;ksa
ds sal dkWye ds eku esa 1000 dh deh fu/kkZfjr dh xbZ gS A vc var ifjorZukad eas mi;qZDr ekax ds
ifj.kke dks SQL%FOUND Attribute ds cjkcj fd;k x;k gS vFkkZr ;fn bldk ewY;kadu lR;
eas gS] rks bldk ifjorZukad var esa True lafpr gks tk,A
vc if frcU/k dk ;ksx djds ;g tkapk x;k gS fd ;fn var ifjorZukad dk eku True gS]
rks dbms_output.put_line() QaDku ds }kjk lUnsk change mode ekWuhVj Lhu ij nfkZr djs A
vc bl ifjorZu dks tkapus ds fy, iqu% Select LVsVesUV }kjk Employee Vsfcy ds sal
dkWye eas fLFkr lHkh ekuksa dks nfkZr fd;k gS A bl ckj ifj.kkeksa esa sal dkWye esa fLFkr lHkh eku
igys nfkZr gq, ekuksa ls 1000 de gS A
SQL%NOTFOUND
;g Attribute SQL%FOUND Attribute ds Bhd foijhr dk;Z djrk gS A bl Attribute
dk ewY;kadu lR; esa rc gksrk gS] tc ;fn ,d Insert, Update vFkok Delete LVsVesUV ls dksbZ Hkh

iafDr Hkkfor ugha gksrh gS A ;fn bu LVsVesUV~l dh dksbZ Hkh ,d iafDr Hkkfor gksrh gS] rks bldk
ewY;kadu vlR; (False) gksrk gS A
mnkgj.k &
SQL> BEGIN
2
UPDATE employee SET sal=sal + (0.2*(sal)) WHERE sal > &sal;
3
if SQL%FOUND then
4
dbms_output.put_line (No. of record update= | | SQL%ROWCOUNT);
5
end if;
6
if SQL%NOTFOUND then
7
dbms_output.put_line (No record update);
8
end if;
9
end;
10
/
Enter value for sal:6000
old
2 : update employee set sal + (0.2 * (sal)) where sal > &sal;

bUQkZsesfVDl iszfDVlsl

164

new 2 : update employee set sal + (0.2 * (sal) where sal > 6000;
No. of records update = 4
PL/SQL procedure successfully completed.
SQL>rollback;
Rollback complete.
SQL>BEGIN
2
Update employee SET sal = sal + (0.2 * (sal)) WHERE sal > &sal;
3
if SQL%FOUND then
4
dbms_output.put_line (No. of records update = | | SQL%ROWCOUNT);
5
end if;
6
if SQL%NOT FOUND then
7
dbms_output.put_line (No records updated);
8
end if;
9
end;
10
/
Enter value for sal : 7000
old
2 : update employee set sal = sal + (0.2 * (sal)) where sal > &sal;
new 2 : update employee set sal = sal + (0.2 * (sal)) where sal > 7000;
No. records updated
PL/SQL procedure successfully completed.
fiNys mnkgj.k esa geus rhuksa Attributes SQL%ROWCOUNT, SQL%FOUND rFkk
SQL%NOTFOUND dk ;ksx nkkZ;k gS A bl mnkgj.k eas geus PL/SQL CykWd ds Begin Hkkx
eas ,d Update LVsVesUV ds }kjk Employee Vsfcy ds mu deZpkfj;ksa ds sal dkWye ds eku esa 20
frkr dh o`f) fu/kkZfjr dh gS] ftuds sal dkWye dk eku ;ksxdrkZ }kjk fo"V fd, x, eku ls
vf/kd gS A vc if frcU/k dk ;ksx djds Attribute dks tkapk x;k gS fd ;fn ;g SQL%FOUND
Attribute gS] rks dbms_output.put_line QaDku dh lgk;rk ls ekWuhVj Lhu ij lUnsk No. of
record is update = ds lkFk Attribute SQL%ROWCOUNT dk eku nfkZr gks A blds ckn ,d
vU; if frcU/k dk ;ksx djds Attribute dks tkapk x;k gS fd ;fn ;g SQL%NOTFOUND
Attribute gS] rks dbms_output.put_line QaDku dh lgk;rk ls ekWuhVj Lhu ij lUnsk No records
updated nfkZr gksA
bl mnkgj.k eas geus bl ksxzke dks nks ckj pyk;k gS A igyh ckj geus sal dkWye ds fy,
eku 6000 fo"V fd;k gS A ;g eku Employee Vsfcy ds sal dkWye eas fLFkr ekuksa esa lcls cM+k eku
ugha gS] blls vf/kd eku ftl&ftl iafDr eas gS] ml iafDr ds sal dkWye ds eku esa ml eku ds 20%

ih- ,y-@,l- D;q- ,y- dh vk/kqfud vo/kkj.kk

165

dh o`f) gks tkrh gS A ;g o`f) fdruh iafDr;ksa eas gksrh gS] bldh x.kuk SQL%ROWCOUNT
Attribute eas gksrh gS vkSj ekWuhVj Lhu ij No. of records update=4 lUnsk nfkZr gksrk gS A
blds ckn eas bl ksxzke }kj fd, x, ifjorZuksa dks fujLr djus ds fy, Rollback dek.M dk
;ksx fd;k gSA
igyh ckj geus sal dkWye ds fy, eku 7000 fo"V fd;k gS A ;g eku Employee Vsfcy ds
sal dkWye esa fLFkr ekuksa eas lcls cM+k eku gS] vc bl ksxkz e dks blls vf/kd eku dh dksbZ Hkh iafDr
ugha kIr gksrh gS vFkkZr~ Update LVsVesUV ds ifj.kke dk Attribute SQL%NOTFOUND gksrk gS
vkSj ekWuhVj Lhu ij No records updated nfkZr gksrk gS A
dlZj Attributes ds eku geskk gh lcls vUr esa pykbZ xbZ SQL LVsVesUV Hkys gh og fdlh Hkh
LFkku ij fLFkr gks] ds ekuksa dk lUnHkZ xzg.k djrs gSa A ;g SQL LVsVesUV fdlh vU; Scope vFkkZr~
fdlh mi&CykWd esa Hkh fLFkr gks ldrs gS A vr% ;fn ge bu Attribute ekuksa dks vkxs ;ksx esa yk,
tkus ds fy, lqjf{kr j[kuk pkgrs gS] rks bls ,d Boolean MsVkdkj ds ifjorZukad dks lkSai nsuk
pkfg, vFkkZr~ Assign dj nsuk pkfg,A
mnkgj.k &
SQL> BEGIN
2
sqlfound1 BOOLEAN;
3
sqlrowcnt1 NUMBER;
4
sqlfound2 BOOLEAN;
5
sqlrowcnt2 NUMBER;
6
BEGIN
7
DELETE FROM employee WHERE comm=&comm;
8
sqlfound1 := SQL%FOUND;
9
sqlrowcnt1 := SQL%ROWCOUNT;
10
UPDATE employee SET ename=upper (ename);
11
sqlfound2 := SQL%FOUND;
12
sqlrowcnt2 := SQL%ROWCOUNT;
13
if sql found1 then
14
dbms_output.put_line (No. of record deleted = | | sqlrowcnt1);
15
end if;
16
if sql found2 then
17
dbms_output.put_line (No. of record updated = | | sqlrowcnt2);
18
end if;
19
end;
20
/
Enter value for comm : 0
old
7 : delete from employee where comm= &comm;
new 7 : delete from employee where comm=0;

bUQkZsesfVDl iszfDVlsl

166

No. of records deleted =1


No. of records updated = 13
PL/SQL procedure successfully completed.

fiNys mnkgj.k esa geus dlZj Attributes dk ;ksx mudks ifjorZukadksa dks lkSaidj vU; LFkku
ij djuk nkkZ;k gS A bl mnkgj.k esa nks Boolean MsVkdkj ds ifjorZukad sqlfound1 rFkk
sqlfound2 vkSj nks Number MsVkdkj ds ifjorZukad sqlrowcnt1 rFkk sqlrowcnt2 ?kksf"kr fd, gSA
bl mnkgj.k ds okys Begin Hkkx eas igys Delete LVsVesUV dk ;ksx djds Employee Vsfcy
dh mu iafDr;ksa dks feVk;k x;k gS] ftuds comm dkWye dk eku] ;ksxdrkZ }kjk fo"V fd, x,
eku ds cjkcj gSA bl LVsVesUV ds dk;kZUo;u ds ifj.kke ds eku dks Boolean MsVkdkj ds
ifjorZukad sqlfound1 rFkk ftruh iafDr;ka bl LVsVesUV ds dk;kZUo;u ls feVh gS] mudh la[;k dks
Number MsVkdkj ds ifjorZukad dks sqlrowcnt1 lkSai fn;k gS A
blds ckn update LVsVesUV dk ;ksx djds Employee Vsfcy dh lHkh iafDr;ksa ds ename
dkWye eas fLFkr Charactertype ekuksa dks Upper Case eas ifjofrZr fd;k x;k gS A bl LVsVesUV ds
dk;kZUo;u ds ifj.kke ds eku dks Boolean MsVkdkj ds ifjorZukad sqlfound2 rFkk ftruh iafDr;ka
bl LVsVesUV ds dk;kZUo;u ls feVh gS] mudh la[;k dks Number MsVkdkj ds ifjorZukad dks
sqlrowcnt2 lkSai fn;k gS A
vc ,d if frcU/k ds }kjk ifjorZukad sqlfound1 ds eku dks tkapk x;k gS vkSj ekWuhVj Lhu
ij dbms_output.put_line QaDku dh lgk;rk ls lUnsk No. of records deleted = ds lkFk
ifjorZukad sqlrowcnt1 dk eku nfkZr fd;k x;k gS A
,d vU; if frcU/k ds }kjk ifjorZukad sqlfound2 ds eku dks tkapk x;k gS vkSj ekWuhVj Lhu
ij dbms_output.put_line QaDku dh lgk;rk ls lUnsk No. of records upddated = ds lkFk
ifjorZukad sqlrowcnt2 dk eku nfkZr fd;k x;k gS A
R;{k dlZj (Explicit Cursors)
R;{k dlZj vksjsdy }kjk ;ksx esa yk, tkus okyk ,slk dke djus okyk LFkku (Work Area)
gksrk gS] tks fd ,d ls vf/kd iafDr;ksa eas dh xbZ ekaxksa dks ifjpkfyr (Handle) djus ds dke vkrk
gS] ;g orZeku eas foysf"kr (Process) dh tkus okyh iafDr ds ckjs esa Hkh crkrk gS vFkkZr~ orZeku le;
esa fdl iafDr esa dke fd;k tk jgk gS] ;g Hkh crkrk gSA
,d ekax }kjk ifj.kke ds :i esa kqU;] ,d vFkok ,d ls vf/kd iafDr;ka Hkh ykSVk ldrh gSA
ifj.kke ds :i esa kIr iafDr;ksa dh la[;k ekax esa ;ksx fd, x, frcU/k ij fuHkZj djrh gS A
tc ,d ekax ifj.kke ds :i eas ,d ls vf/kd iafDr;ksa dks ykSVkrh gS] rks ,d dlZj dks R;{k
:i ls fuEukuqlkj ifjHkkf"kr fd;k tk ldrk gS &
& ekax }kjk ifj.kke ds :i esa nh xbZ igyh iafDr ls vkxs foysf"kr djuk A
& bl ckr ij utj j[kuk] fd orZeku esa dkSu&lh iafDr foysf"kr dh tk jgh gS A

ih- ,y-@,l- D;q- ,y- dh vk/kqfud vo/kkj.kk

167

dlZj dks PL/SQL CykWd ds declare okys Hkkx esa ifjHkkf"kr fd;k tkrk gS] lkFk gh bldks ,d
uke nsrs gq, ,d ekax ds lkFk Hkh tksM+k tkrk gS A dlZj dks fuEufyf[kr lw=kuqlkj ifjHkkf"kr fd;k
tkrk gS &
lw= &
CURSOR Cursor_Name IS Select_Statement
dlZj (Cursor) dks ifjpkfyr djus ds fy, fuEufyf[kr rhu LVsVesUV~l dk ;ksx fd;k
tkrk gS A
& Open
& Fetch
& Close
dlZj dks Open LVsVesUV dh lgk;rk ls ,d kjfEHkd eku nsuk vko;d gksrk gS A ,d Fetch
Statement dh lgk;rk ls dlZj dh orZeku iafDr dks iqu% kIr djus ds fy, fd;k tkrk gS A Fetch
LVsVesUV dks ckj&ckj rc rd pyk;k tk ldrk gS] tc rd fd lHkh iafDr;ksa dks iqu% kIr ugha dj
fy;k tkrk A dlZj ls lEc) ekax }kjk ykSVk, x, R;sd dkWye ds eku ds fy, Into ds ckn nh
tkus okyh lwph (List) ds vUnj ek% :i esa ifjorZukad gksus pkfg, lkFk gh lkFk mu ifjorZukadks
dk MsVkdkj Hkh dkWye ds MsVkdkj ds leku gh gksuk pkfg, A bl LVsVesUV dk ;ksx fuEu
k:ikuqlkj fd;k tkrk gS A
FETCH Cursor_Name INTO var1, var2..........
PL/SQL eas ,slk lEHko ugha gS fd igys fdlh ifjorZukad] dlZj vkfn dk ;ksx dj fy;k tk,
rFkk mldh ?kks"k.kk ckn esa dh tk,] vr% dlZj dks Hkh Open, Fetch rFkk Close LVsVesUV pykus ls

igys gh ifjHkkf"kr fd;k tkuk pkfg, A


blds lkFk&lkFk] os ifjorZukad] tks dlZj ds fy, Into Clause eas fd, tkus okys gS] mUgsa Hkh
Declare Hkkx eas dlZj dh ?kks"k.kk ls igys gh ?kksf"kr dj fn;k tkuk pkfg, A
mnkgj.k &
SQL>
2
3
4
5
6
7
8
9
10
11
12

DECLARE
vempno employee.empno%type;
vename employee.ename%type;
CURSOR cl IS
SELECT empno, ename FROM employee;
BEGIN
OPEN cl;
FETHC cl INTO vempno, vename;
dbms_output.put_line (vempno || || vename);
CLOSE cl;
end;
/

bUQkZsesfVDl iszfDVlsl

168

7369 SANJEEV
PL/SQL procedure successfully completed.

tc vfUre iafDr dks Hkh foysf"kr dj fy;k tkrk gS] rks dlZj dks Close LVsVesUV ds }kjk cUn
dj fn;k tkrk gS A bl LVsVesUV dk ;ksx fuEu k:ikuqlkj fd;k tkrk gS &
CLOSE Cursor_Name

fiNys fn;s x;s mnkgj.k esa geus ,d dlZj dks ifjHkkf"kr rFkk ifjpkfyr djuk nkkZ;k gS A
bl mnkgj.k esa geus igys nks ifjorZukad vempno rFkk vename ?kksf"kr fd, gS] bu ifjorZukadksa dk
MsVkdkj rFkk vkdkj Employee Vsfcy ds ek% empno o ename dkWye ds MsVkdkj rFkk vkdkj
ds leku gSA
blds ckn geus ,d dlZj ftldk uke C 1 j[kk x;k gS] ifjHkkf"kr fd;k gS rFkk blds lkFk
lEc) Select LVsVesUVesa Employee Vsfcy ds empno o ename dkWyEl ds lHkh fjdkWM~lZ dks nkkZus
dh ekax dh gSA
vc PL/SQL ds Begin okys Hkkx esa igys Open LVsVesUV dk ;ksx djds bl dlZj dks [kksyk
x;k gSA blds ckn Fetch LVsVesUV dk ;ksx djds dlZj ds lkFk lEc) ekax ds ifj.kkeLo:i kIr
iafDr;ksa esa ls igyh iafDr ds empno rFkk ename dkWyEl ds ekuksa dks ifjorZukad vempno rFkk
vename esa lafpr djk;k gSA blds mijkUr dbms_output.put_line QaDku dk ;ksx djds bu
ifjorZukadksa ds ekuksa dks ekWuhVj Lhu ij nfkZr fd;k x;k gSA
bl ksxzke ds pyus ij ekWuhVj Lhu ij Employee Vsfcy dh igyh iafDr ds empno dkWye
dk eku 7369 rFkk ename dkWye dk eku SANJEEV gh nfkZr gksrk gS A
Fetch LVsVesUV ,d le; esa orZeku lh; iafDr;ksa ds lewg esa ls dsoy ,d iafDr dks gh iqu%
kIr djrk gS A ;fn Fetch LVsVesUV dks fdlh ywi eas ;ksx fd;k tk,] rks R;sd ckj bl LVsVesUV
ds dk;kZfUor gksus ij ;g LVsVesUV orZeku lf; iafDr;ksa ds lewg esa ls vxyh iafDr ij pyk
tkrk gS A
vxys mnkgj.k esa geus Fetch LVsVesUV dk ;ksx ,d ywi ds vUnj fd;k gS A ;g mnkgj.k
fiNys mnkgj.k dk gh lq/kjk gqvk :i gSA bl mnkgj.k eas geus dlZj C1 dks Open LVsVesUV ls
[kksyus ds mijkUr ,d for ywi dk ;ksx djds Fetch LVsVesUV dks ikap ckj pyk;k gS A
bl ksxzke ds pyus ij gesa ekWuhVj Lhu ij Employee Vsfcy dh igyh ikap iafDr;ksa ds
empno dkWye rFkk ename dkWye ds eku nfkZr gksrs gS A ,slk blfy, gksrk gS] D;ksafd igyh ckj
Fetch LVsVesUV ds dk;kZfUor gksus ij ekWuhVj Lhu ij Employee Vsfcy dh igyh iafDr ds empno
dkWye rFkk ename dkWye dk eku nfZkZr gksrk gSA
mnkgj.k &
SQL>
2
3
4

DECLARE
vempno employee.empno%Type;
vename employee.ename%Type;
CURSOR cl IS

ih- ,y-@,l- D;q- ,y- dh vk/kqfud vo/kkj.kk

169

5
SELECT empno, ename FROM employee;
6
BEGIN
7
OPEN cl;
8
FOR I in 1..5 LOOP
9
FETHC cl INTO vempno, vename;
10
dbms_output.put_line (vempno || || vename);
11
END LOOP;
12
CLOSE Cl;
13
end;
14
/
7369 SANJEEV
7499 AMIT
7521 SUDHANSHU
7566 SANDEEP
7654 REKHA
PL/SQL procedure successfully completed.

vc ksxkz e bl LVsVesUV dks iqu% dk;kZfUor djrk gS] bl ckj dk;kZfUor gksus ij ekWuhVj Lhu
ij Employee Vsfcy dh nwljh iafDr ds empno dkWye rFkk ename dkWye dk eku nfkZr gksrk
gS A blh dkj ikapoh ckj dk;kZfUor gksus ij Employee Vsfcy dh ikapoh iafDr ds ename dkWye
rFkk ename dkWye dk eku nfkZr gksrk gS A
dlZj dks ?kksf"kr djus ds fy, ;ksx dh xbZ ekax esa PL/SQL ifjorZukadksa dks dsoy vius
Scope ds vUnj gh lUnfHkZr fd;k tk ldrk gS A ekax dh Where krZ ds lkFk ;ksx fd, x,
ifjorZukad rHkh lf; gks ikrs gSa] tcfd dlZj dks Open LVsVesUV ds }kjk igys [kksyk tk, A
fn, x, mnkgj.k esa geus ,d dlZj dks ?kksf"kr djus ds fy, ;ksx dh xbZ ekax eas PL/SQL
ifjorZukadksa dk ;ksx djuk nkkZ;k gS A bl mnkgj.k esa geus igys nks ifjorZukad vempno, vename
rFkk vsal ?kksf"kr fd, gS] bu ifjorZukadksa dk MsVkdkj rFkk vkdkj Employee Vsfcy ds ek%
empno, ename rFkk sal dkWye ds MsVkdkj rFkk vkdkj ds leku gS A ifjorZukad vsal dks bls
?kksf"kr djus ds lkFk&lkFk kjfEHkd eku 3000 Hkh nku dj fn;k x;k gS A blds ckn dlZj c1
dks ifjHkkf"kr djrs le; blls lEc) ekax esa Where krZ dk ;ksx djrs gq, Employee Vsfcy dh
mu iafDr;ksa ds empno, ename rFkk sal dkWye ds ekuksa dks pquus ds fy, dgk x;k gS] ftuds sal
dkWye eas Pl/SQL ifjorZukad vsal dkWye ds kjfEHkd eku 3000 ls vf/kd gksA
mnkgj.k &
SQL>
2
3
4
5

DECLARE
vempno employee.empno%type;
vename employee.ename%type;
vsal employee.sal%type :=3000;
CURSOR c1 IS

bUQkZsesfVDl iszfDVlsl
6
7
8
9
10
11
12
13
14
15
7499
7521
7654
7839

170

SELECT empno, ename, sal FROM employee WHERE sal>vsal;


BEGIN
OPEN cl;
FOR I in 1 . . 4 LOOP
FETHC cl INTO vempno, vename, vsal;
dbms_output.put_line (vempno || || vename || || vsal);
END LOOP;
CLOSE Cl;
end;
/
AMIT 7000
SUDHANSHU 7000
REKHA 7000
RAKESH 5000

PL/SQL procedure successfully completed.

R;{k dlZj ds Attributes


R;{k dlZj ds Attributes dks ;ksx djus ds fy, buds uke ls igys dlZj dk uke tksM+uk
vko;d gksrk gSA
R;sd R;{k dlZj ds vxzfyf[kr pkj Attributes gksrs gS] tks fd dlZj dh fLFkfr dh lwpuk
nsus dk dk;Z djrs gS A
%FOUND

;fn vfUre Fetch LVsVesUV lQy gksrk gS] D;ksfa d vHkh de ls de ,d iafDr ks"k gS] rks bldk
ewY;kadu lR; eas gksrk gS vkSj ;fn vfUre Fetch LVsVesUV vlQy gksrk gS] D;ksafd vc dksbZ Hkh iafDr
ugha ksk gS] rks bldk ewY;kadu vlR; eas gksrk gS A
mnkgj.k &
SQL>
2
3
4
5
6
7
8
9
10
11

DECLARE
vempno employee.empno%type;
vename employee.ename%type;
vsal employee.sal%type;
vdeptno employee.deptno%type;
FLAG NUMBER : =1;
CURSOR c1 IS
SELECT empno, ename, sal, deptno FROM employee WHERE sal>3000;
BEGIN
OPEN cl;
LOOP

ih- ,y-@,l- D;q- ,y- dh vk/kqfud vo/kkj.kk


12
13
14
15
16
17
18
19
20
21
22
7499
7521
7654
7839
7844
7900

171

FETHC cl INTO vempno, vename, vsal, vdeptno;


IF C1%FOUND THEN
INSERT INTO t_emp VALUES (VEMPNO, VENAME, VSAL, VDEPTNO);
dbms_output.put_line (vempno || || vename || || vsal || || vdeptno);
ELSE
EXIT;
END IF;
END LOOP;
CLOSE Cl;
END;
/
AMIT
7000 3
SUDHANSHU
7000 3
REKHA
7000 3
RAKESH
5000 1
MEENI
7000 3
SUDHANSHI
3050 3

PL/SQL procedure successfully completed.


mijksDr mnkgj.k esa geus ,d R;{k dlZj ds %FOUND Attributes dk ;ksx djuk nkkZ;k
gSA bl mnkgj.k esa ifjHkkf"kr fd, x, dlZj C1 ds lkFk lEc) ekax esa Where krZ dk ;ksx djrs
gq, Employee Vsfcy dh mu iafDr;ksa ds empno, ename, sal rFkk deptno dkWye ds ekuksa dks pquus
ds fy, dgk x;k gS] ftuds sal dkWye eas PL/SQL ifjorZukad vsal ds kjfEHkd eku 3000 ls

vf/kd gks A
vc ,d ywi esa Fetch LVsVesUV ls dlZj ds lkFk lEc) ekax] ds ifj.kke ds :i eas kIr ekuksa
dks PL/SQL ifjorZukad vempno, vename, vsal rFkk vdeptno esa lafpr djk;k gS A blds ckn if
frcU/k dk ;ksx djds bl dlZj ds Attribute dks C1%FOUND ls tkapk x;k gS A ;fn ;g lR;
kIr gksrk gS] rks Fetch LVsVesUV }kjk PL/SQL ifjorZukadksa vempno, vename, vsal rFkk vdeptno
esa lafpr ekuksa dks t_emp Vsfcy esa Insert gks tk, rFkk dbms_output.put_line () QaDku ds dkj.k
bu ifjorZukadksa ds ekuksa dk nkZu ekWuhVj Lhu ij gks vkSj ;fn ;g vlR; gksrk gS] rks ksxzke dk
fu;U=.k ywi ls ckgj vk tk, A
bl ksxkz e ds dk;kZfUor gksus ij Employee Vsfcy ls N% iafDr;ka pqu yh tkrh gS vkSj mudks
t_emp uked Vsfcy eas Insert dj fn;k tkrk gS A ;fn PL/SQL ifjorZukad vsal dk kjfEHkd eku
7000 vFkok blls vf/kd fn;k gksrk] tks fd sal dkWye dk lcls vf/kd eku gS] rks ksxzke dk
fu;U=.k ywi ls ckgj vk tkrk gS] D;ksafd Employee Vsfcy eas ,slh dksbZ Hkh iafDr ugha gS] ftlds
sal dkWye dk eku 7000 vFkok blls vf/kd gks A bl fLFkfr eas Hkh dksbZ =qfV lUnsk ugha gksrk gS
vkSj Procedure lQyrkiwoZd iw.kZ gksrk gS A

bUQkZsesfVDl iszfDVlsl

172

%NOTFOUND

;g Attribute mi;qZDr %FOUND Attributes ds Bhd foifjr dk;Z djrk gS A ;fn vfUre
Fetch LVsVesUV vlQy gksrk gS] D;ksafd vc dksbZ Hkh iafDr ugha ks"k gS] rks bldk ewY;kadu lR; esa
gksrk gS vkSj ;fn vfUre Fetch LVsVesUV lQy gksrk gS] D;ksafd vHkh de ls de ,d iafDr ks"k gS]
rks bldk ewY;kadu vlR; eas gksrk gS A
vkxs fn;k x;k mnkgj.k eas fiNys mnkgj.k dk gh :i gS A bu nksuksa mnkgj.kksa eas vUrj ek=
bruk gh gS fd fiNys mnkgj.k esa dsoy ,d if frcU/k dk ;ksx fd;k x;k gS] tcfd bl mnkgj.k
esa geus nks if frcU/kksa dk ;ksx fd;k gS A bl mnkgj.k esa geus PL/SQL ifjorZukad vsal dk
kjfEHkd eku 7000 fn;k gS] tks fd sal dkWye dk lcls vf/kd eku gS A
mnkgj.k &
SQL>
2
3
4
5
6
7
8
9
10
11
12
13
13
14
15
16
17
17
18
19
20
21
22
23

DECLARE
vempno employee.empno%type;
vename employee.ename%type;
vsal employee.sal%type;
vdeptno employee.deptno%type;
FLAG NUMBER : =1;
CURSOR c1 IS
SELECT empno, ename, sal, deptno FROM employee WHERE sal>3000;
BEGIN
OPEN cl;
LOOP
FETHC cl INTO vempno, vename, vsal, vdeptno;
IF C1%FOUND THEN
INSERT INTO t_emp VALUES (VEMPNO, VENAME, VSAL, VDEPTNO);
dbms_output.put_line (vempno || || vename || || vsal || || vdeptno);
END IF;
IF C1%NOTFOUND THEN
EXIT;
END IF;
END LOOP;
CLOSE Cl;
END;
/

ih- ,y-@,l- D;q- ,y- dh vk/kqfud vo/kkj.kk

173

PL/SQL procedure successfully completed.

bl mnkgj.k esa igys if frcU/k eas dlZj C1 ds Attribute dks C1%FOUND ls tkapk x;k gSA
;fn ;g lR; kIr gksrk gS] rks Fetch LVsVesUV }kjk PL/SQL ifjorZukadksa vempno, vename rFkk
vdeptno esa lafpr ekuksa dks t_emp Vsfcy eas Insert gks tk, rFkk dbms_output.put_line () QaDku
ds dkj.k bu ifjorZukadksa ds ekuksa dk nkZu ekWuhVj Lhu ij gks A
bl mnkgj.k esa nwljs if frcU/k esa dlZj c1 ds Attribute dks C1%NOTFOUND ls tkapk
x;k gSA ;fn ;g lR; kIr gksrk gS] rks ksxzke dk fu;U=.k ywi ls ckgj vk tk, A
%ROWCOUNT :

;g Attribute Fetch LVsVesUV }kjk orZeku lf; iafDr;ksa ds lewg esa ;ksx esa ykbZ xbZ iafDr;ksa
dh la[;k dks eku ds :i esa ykSVkrk gS A eku yhft, Fetch LVsVesUV ds ifj.kkeLo:i gesa nks iafDr;ka
kIr gksrh gS] rks ;g Attribute 2 ykSVk;sxk A
mnkgj.k &
SQL>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
15
16
17
18
19
20
21
22
23

DECLARE
vempno employee.empno%type;
vename employee.ename%type;
vdname dept.dname%type;
vsal employee.sal%type;
vcomm employee.comm%type;
VNET NUMBER (7, 2);
CURSOR C1 IS
SELECT empno, ename, dname, sal, comm, sal+nvl (comm, 0)
FROM employee, dept WHERE employee.deptno=dept.deptno;
BEGIN
OPEN cl;
LOOP
FETCH cl INTO vempno, vename, vdname, vsal, vcomm, vnet;
IF C1%FOUND THEN
dbms_output.put_line (vempno || || vename || || vdname || || vsall ||
|| vcomm || || vnet);
END IF;
IF C1%NOTFOUND THEN
dbms_output.put_line (No. of Records Displayed : || C1%ROWCOUNT);
EXIT;
END IF;
END LOOP;
CLOSE Cl;

bUQkZsesfVDl iszfDVlsl

174

24
END;
25
/
7369 - SANJEEV - RESEARCH - 1300 - 1000 - 2300
7499 - AMIT - SALES - 7000- 300 - 7300
7521 - SUDHANSHU - SALES - 7000 - 500 - 7500
7566 - SANDEEP - RESEARCH - 2975 - 1000 - 3975
7654 - REKHA - SALES - 7000 - 1400 - 8400
7698 - POOJA - SALES - 2850 - 1000 - 3850
7782 - AMIT - ACCOUNTING - 2450 - 1000 - 3450
7788 - MUKESH - RESEARCH - 3000 - 1000 - 4000
7839 - RAKESH - ACCOUNTING - 5000 - 1000 - 6000
7844 - MEENU - SALES - 7000 - 0 - 7000
7876 - MEETU - RESEARCH - 1600 - 1000 - 2600
7900 - SUDHANSHU - SALES - 3050 - 1000 - 4050
7902 - SUSHEEL - RESEARCH - 3000 - 1000 - 4000
7934 - MADHU - ACCOUNTING - 1800 - 1000 - 2800
No. of Records Displayed : 14
PL/SQL procedure successfully completed.

bl mnkgj.k esa geus ,d R;{k dlZj ds vc rd rhuksa Attribute % FOUND % NOTFOUND


rFkk %ROWCOUNT dk ;ksx djuk nkkZ;k gS A Attribute %FOUND rFkk %NOT FOUND
ds ;ksx ds ckjs eas fiNys mnkgj.kksa esa ge foLrkj ls ppkZ dj pqds gS A
bl mnkgj.k esa ifjHkkf"kr fd, x, dlZj C1 ds lkFk lec) ekax esa Employee rFkk Dept
nksuksa VsfcYl esa ls empno, ename, dname, sal, comm rFkk sal+nvl (comm,0) dkWyEl ds ekuksa dks
pquus ds fy, dgk x;k gS] ftuds deptno dkWye dk eku nksuksa VsfcYl ds leku gS A
bl mnkgj.k ksxkz e ds nks if frcU/kksa dk ;ksx fd;k x;k gS A igys if frcU/k eas %FOUND
Attribute rFkk nwljs if frcU/k esa %NOT FOUND Attribute dks tkapk x;k gS A igys if
frcU/k esa %FOUND Attribute ds lR; gkssus ij fofHkUu eku ekWuhVj Lhu ij nfkZr gksrs gSA
nwljs if frcU/k eas %NOTFOUND Attribute ds lR; gkssus ij ,d lUnsk No. of Records
Displayed :14 ekWuhVj Lhu ij nfkZr gksrk gS A bl lUnsk esa 14 eku] nwljs if frcU/k eas ;ksx
fd, x, Attribute%ROWCOUNT ds dkj.k kIr gksrk gS A
%ISOPEN

ksxzke eas ;fn ,d R;{k dlZj [kqyk gqvk gS] rks bldk ewY;kadu lR; eas gksrk gS vkSj ;fn cUn
gS] rks bldk ewY;kadu vlR; esa gksrk gS A

ih- ,y-@,l- D;q- ,y- dh vk/kqfud vo/kkj.kk

175

MsVkcsl fVxlZ
MsVkcsl fVxlZ dk ifjp; (Introduction of Database Triggers)
MkVkcsl fVxlZ (Database Triggers) fdlh foks"k MsVkcsl Vsfcy ls tqM+h gqbZ PL/SQL dh ,d
lqjf{kr ksxzke bdkbZ gksrh gS A
;s lqjf{kr Procedures vFkok Functions ls fHkUu gksrs gS] D;ksafd Procedure vFkok Function
dks rks dk;kZfUor djus ds fy, R;{k :i ls dek.M ds }kjk cqyk;k tkrk gS] tcfd] tc Hkh dksbZ
MsVkcsl Vsfcy fdlh SQL vkWijsku ls Hkkfor gksrh gS] rks ;s Lor% gh vR;{k :i ls dk;kZfUor
gks tkrs gS A Vsfcy dk Hkkfor gksuk fdlh foks"k fLFkfr ij fuHkZj djrk gS A
MsVkcsl fVxlZ ds mi;ksx
MsVkcsl fVxlZ dk ;ksx fuEu dk;ksZa ds fy, fd;k tk ldrk gS &
& MsVk esa fd, x, lq/kkj dk ijh{k.k (Audit) djus ds fy, A
& MsVk dh lqj{kk (Security) djus ds fy, A
& ,dhr fu;U=.k Hkkoh djus ds fy, A
& dkWye ds ekuksa dks Lor% gh fudkyus ds fy, A
& nksgjkbZ tkus okyh VsfcYl dk vuqj{k.k (Maintainance) djus ds fy, A
,d MsVkcsl fVxlZ ds rhu Hkkx gksrs gS &
1- Triggerring Event fVxlZ ls ?kfVr gksus okyh ?kVuk
2- Optional Trigger Constraint oSdfYid fVxlZ frcU/k
3- Trigger Action fVxlZ dk dk;Z
tc dksbZ Event mifLFkr gksrh gS vFkok ?kVrh gS rc MsVkcsl fVxj py tkrk gS rFkk mlls
lEcfU/kr PL/SQL CykWd dk;Z dks iw.kZ djrk gS A
MsVkcsl fVxj (Database Trigger) mu foks"kkf/kdkjksa ds vuq:i dk;Z djrk gS tks mlds cukus
okys us igys gh ns j[ks gksrs gS u fd ;ksxdrkZ ds }kjk] tks fd mldks ,d Vsfcy ds }kjk ;ksx
eas yk jgk gS A vr% mlds cukus okys dks lgh&lgh mu lHkh Objects dh igqp gksuh pkfg, tks
Trigger ds Action ds }kjk lUnfHkZr fd, tk jgs gSa A
fdlh ,d nh xbZ Vsfcy ls vlhfer fVxlZ lEc) fd, vFkok tksM+s tk ldrs gSA ,d MsVkcsl
fVxj dks cukus ds fy, Create Trigger fu;e dk ikyu djuk gksrk gS vkSj mlds lkFk viuh fdlh
Vscy dks lEc) djuk gksrk gS vFkok lEc) Vsfcy ds fy, Alter fu;e dk ;ksx djuk gksrk gS A
,d MsVkcsl fVxj dks fuEufyf[kr lw=kuqlkj cuk;k vkSj ifjHkkf"kr fd;k tk ldrk gS &
lw= & CREATE [OR REPLACE] TRIGGER <trigger-name>
BEFORE / AFTER

bUQkZsesfVDl iszfDVlsl

176

{DELETE / INSERT / UPDATE [Of column [, COLUMN]...]}


ON <table>
FOR EACH ROW [WHEN (Condition)]
BEGIN
:
<pl/sql_block>
END;

mi;qZDr lw= esa ;ksx fd, x, fofHkUu oM~Zl dk dk;Z fuEufyf[kr gS &
CREATE : ;g dh&oMZ ,d u;k MsVkcsl fVxj cukus dk dk;Z djrk gS A
OR REPLACE : ;g dh&oMZ MsVkcsl fVxj tks fd igys ls gh vfLrRo eas gS] dks nqckjk u, fljs
ls cukus dk dk;Z djrk gS A
BEFORE : ;g dh&oMZ vksjsdy dks MsVkcsl fVxj dks Triggerring LVsVesUV~l dks
dk;kZfUor djus ls igys pykus ds fy, fufnZ"V djrk gS A
AFTER : ;g dh oMZ BEFORE dh oMZ ds Bhd foifjr vksjsdy dks MsVkcsl fVxj
dks Triggerring LVsVesUV~l dks dk;kZfUor djus ds ckn pykus ds fy, fufnZ"V djrk gS A
DELETE : ;g dh oMZ ;g fufnZ"V djrk gS] vksjsfdy MsVkcsl fVxj dks ml le; pyk,]
tc mlls lEc) Vsfcy ls fdlh iafDr dks Delete LVsVesUV ds }kjk feVk;k tk jgk gks A
INSERT : ;g dh oMZ ;g fufnZ"V djrk gS fd vksjd
s y MkVkcsl fVxj dks ml le; pyk;s
tc mlls lEc) Vscy esa fdlh iafDr dks INSERT LVsVesUV ds }kjk fo"V fd;k tk jgk gks A
UPDATE....OF
: ;g dh&oMZ ;g fufnZ"V djrk gS fd vksjsdy bl MkVkcsl fVxj dks
rHkh pyk;s tcfd lEc) Vsfcy esa Update LVsVesUV }kjk bl dh&oMZ ds Of ds ckn fn, x,
dkWyEl ds ekuksa esa dksbZ ifjorZu fd;k tkrk gS A ;fn bl dh&oMZ ds ckn Of dk ;ksx ugha fd;k
x;k gS] rks lEc) Vsfcy ds fdlh Hkh dkWye ds eku eas ifjorZu djus ds fy, Update LVsVesUV dk
;ksx djus ij ;g fVxj pysxk A
FOR EACH ROW : ;g dh oMZ] ;g fufnZ"V djrk gS fd orZeku MsVkcsl fVxj ,d Row
Trigger gS A vksjsdy Row Trigger dks R;sd ml iafDr ds fy, ,d ckj pykrk gS] tks fd
Triggerring ls Hkkfor gksrh gks vkSj bl fVxj ds lkFk ;ksx fd, x, WHEN dh&oMZ ds
ckn ifjHkkf"kr fd, x, frcU/kksa dks lR; ikrh gks A
vxys mnkgj.k esa ,d MsVkcsl fVxj del_trin cuk;k x;k gS A bl mnkgj.k esa lcls igys
CREATE OR REPLACE dh&oMZ dk ;ksx djds bl MsVkcsl fVxj dks cuk;k x;k gS A OR
REPLACE dh oMZ ds ;ksx djus ls ;fn igys ls bl uke ls dksbZ fVxj fLFkr Hkh gS] rks ml fVxj
ij ;g vksojjkbV gks tk,xk A blds ckn BEFORE dh oMZ dk ;ksx djds ;g fufnZ"V fd;k x;k
gS fd DEPT Vsfcy ls Delete djus ls iwoZ blds ckn fn, x, LVsVesUV dk;kZfUor gks A bl
LVsVesUV~l esa Employee Vsfcy dh mu iafDr;ksa dks feVkus ds fy, dgk x;k gS] ftuds Deptno dkWye

ih- ,y-@,l- D;q- ,y- dh vk/kqfud vo/kkj.kk

177

dk eku ogh gS] tks fd bl Dept Vsfcy ls feVkbZz xbZ iafDr;ksa dk gS A


vc tc Hkh ge Dept Vsfcy ls dksbZ iafDr feVk;saxs] rks ml iafDr ds Deptno dkWye eas tks
eku gksxk] ml eku okyh lHkh iafDr;ka Employee Vsfcy ls Lor% gh feV tk;sxh A
mnkgj.k &
SQL> CREATE OR REPLACE TRIGGER del_trig
2

BEFORE DELETE ON DEPT

FOR EACH ROW

BEGIN

DELETE FROM Employee WHERE deptno=L OLD_DEPTNO;

END;

Trigger created

mnkgj.k &
SQL> CREATE TRIGGER updt_trig
2

BEFORE UPDATE OF item_no ON MASTER

FOR EACH ROW

BEGIN

UPDATE

SLAVE

SET

item_no=:New.item_no,

WHERE

item_no=:OLD.item_no;
6

END;

Trigger created

mijksDr mnkgj.k esa cuk, x, MsVkcsl fVxj Updt_trig ds dkj.k ge tc Hkh MASTER Vsfcy
ds item_no dkWye eas Update LVsVesUV ls dksbZ Hkh ifjorZu djsax]s rks ;g ifjorZu Lor% gh SALVE
Vsfcy ds Hkh item_no dkWye ds fy, Hkh Hkkoh gksxk A
mnkgj.k &
SQL> CREATE OR REPLACE TRIGGER upper_trig
2

BEFORE INSERT OR UPDATE OF ename ON employee

FOR EACH ROW

BEGIN

bUQkZsesfVDl iszfDVlsl
5

178

:NEW.ename :=upper ):NEW.ename);

6
END;
7
Trigger created

mijksDr mnkgj.k esa cuk, x, MsVkcsl fVxj Upper_trig ds dkj.k ge tc Hkh EMPLOYEE
Vsfcy ds ename dkWye eas Update LVsVesUV ls dksbZ Hkh ifjorZu vFkok Insert LVsVesUV ls dksbZ Hkh
fof"V djsax]s rks ;g lnSo UPPER CASE esa gksxh A

vH;kl u
oLrqfu"B u %
1EXIT LVsVesUV dk ;ksx fd;k tkrk gS \
v ksxzke dk fu;U=.k ywi ds ckgj ykus ds fy,
c ksxzke dk fu;U=.k ywi ds vUnj ykus ds fy,
l ksxzke dk fu;U=.k ywi eas ij ykus ds fy,
n ksxzke dk fu;U=.k ywi eas uhps ykus ds fy,

2dlZj dks ifjpkfyr djus ds fy, dkSuls LVsVesUV dk ;ksx fd;k tkrk gS\
v Open
c Fetch
l Close
n mijksDr lHkh

3fdlh foks"k MkVkcsl Vscy ls tqM+h gqbZ PL/SQLdh ,d lqjf{kr ksxzke bdkbZ dks dgk
tkrk gS\
c Trigger
v Cursor
l Event
n mijksDr eas ls dksbZ ugha

4dlZj &&&& izdkj ds gksrs gSA
c 3
v 4
l 2
n 0

5.
%NOTFOUND Attribute _________ ds Bhd foifjr dk;Z djrk gSA
c %FETCH
v %FILL
l %FOUND
n mijksDr lHkh

________Attribute fetch statement }kjk orZeku iafDr;ksa ds lewg esa iz;ksx esa ykbZ xbZ
6iafDr;ksa fd la[;k eku ds #i esa ykSVkrk gSA
v %COUNT
c % TABLE
l %ROW COUNT
n mijksDr eas ls dksbZ ugha

ih- ,y-@,l- D;q- ,y- dh vk/kqfud vo/kkj.kk

vfr y?kqkjkRed u %
1- MsVkcsl fVxj ds fdrus Hkkx gksrs gS \
2- MsVkcsl fVxj ds lEcU/k esa Before dh&oMZ dk D;k mi;ksx gS\
3- PL/SQL eas EXIT LVsVesUV dk mi;ksx crkb,A
4- dlZj fdrus izdkj ds gksrs gS\
5- Implicit dlZj fdls dgrs gS\
6- Explicit dlZj fdls dgrs gS\
7- Implicit vkSj Explicit dlZj esa vUrj crkb;sA
8- %ROWCOUNT dk D;k dk;Z gS\
9- %NOTFOUND dk mi;ksx D;ksa fd;k tkrk gS\
10- %FOUND dk mi;ksx dc fd;k tkrk gS\
11- Close dk mi;ksx dc fd;k tkrk gS\
12- ,d Database esa fVxj ds fdrus Hkkx gksrs gS\
13- Trigger D;k gksrs gS\
14- Trigger fdrus izdkj fd gksrs gS\
15- After Trigger D;k gksrk gS\
y?kq kjkRed u %
1- PL/SQL esa EXIT LVsVesUV ds lkFk When dk ;ksx djus ij D;k Hkko iM+rk gS\
2- While LVsVesUV dk mi;ksx crkb,A
3- Goto LVsVesUV dk mi;ksx crkb,A
4- PL/SQL ds fdl Hkkx eas dlZj dks fMdys;j fd;k tkrk gS\
5- MsVkcsl fVxj ds fdrus Hkkx gksrs gS\
6- Trigger dks mnkgj.k lfgr le>kb;sA
7- After vkSj Befor Trigger esa vUrj crkb;sAa
8- %ROW COUNT dks mnkgj.k nsdj le>kb;sA
9- Database ds izdkj dks foLrkj ls le>kb;sA
10- After Trigger dk Syntex crkb;sA
11- Befor Trigger dk Syntex crkb;sA
12- Trigger dks fdl izdkj Delete fd;k tkrk gSa\

179

bUQkZsesfVDl iszfDVlsl

13- FOR EACH ROW dk D;k dk;Z gS\


14- Trigger Ring event dks le>kb;sA
15- Database esa Trigger dk mi;ksx crkb;sA dks mnkgj.k lfgr le>kb;sA
fucU/kkRed u
1- dlZj D;k gS\ vR;{k dlZj dks mnkgj.k lfgr crkb,A
2- R;{k o vR;{k dlZj esa foHksn dhft,A
3- MsVkcsl fVxj D;k gS\ mnkgj.k lfgr o.kZu dhft, A
4- mnkgj.k lfgr After Trigger dks Database ij cukb;sA rFkk Delete djds crkb;sA

180

You might also like