Vous êtes sur la page 1sur 125

PL SQL Use Full Programs

1.Writeaprogramtoprintthefollowingformat
WELCOMETOPL/SQLPROGRAMMING
BEGIN
DBMS_OUTPUT.PUT_LINE('WELCOMETOPL/SQL
PROGRAMMING');
END;
/
2.Writeaprogramtoprintthenumbersfrom1to100
DECLARE
NNUMBER(3):=1;
VVARCHAR2(1000);
BEGIN
WHILEN<=1000
LOOP
V:=V||''||N;
N:=N+1;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE(V);
END;
/
3.writeaprogramtoprinttheevennumbersfrom1to100
DECLARE
NNUMBER(3):=0;
BEGIN
WHILEN<=100
LOOP
N:=N+2;

DBMS_OUTPUT.PUT_LINE(N);
ENDLOOP;
END;
/
4.Writeaprogramtoprinttheoddnumbersfrom1to100
DECLARE
NNUMBER(3):=1;
BEGIN
WHILEN<=100
LOOP
N:=N+2;
DBMS_OUTPUT.PUT_LINE(N);
ENDLOOP;
END;
/
5.writeaprogramformultiplicationtable
DECLARE
ANUMBER(2):=&A;
BNUMBER(2):=1;
CNUMBER(3);
BEGIN
WHILEB<=10

LOOP
C:=A*B;
DBMS_OUTPUT.PUT_LINE(A||'*'||B||'='||C);
B:=B+1;
ENDLOOP;
END;
/
6.writeaprogramtofindthesumofnumbersfrom1to100
DECLARE
NNUMBER(3):=1;
SNUMBER(4):=0;
BEGIN
WHILEN<=100
LOOP
S:=S+N;
N:=N+1;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('THESUMOF1TO100IS'||S);
END;
/
7.Writeaprogramtofindthesumofalloddnumbersfrom
1to100
DECLARE
NNUMBER(3):=1;
SNUMBER(4):=0;
BEGIN

WHILEN<=100
LOOP
S:=S+N;
N:=N+2;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('THESUMOF1TO100ODD
NUMBERSIS'||S);
END;
/
8.Writeaprogramtofindthesumofallevennumbersfrom
1to100
DECLARE
NNUMBER(3):=0;
SNUMBER(4):=0;
BEGIN
WHILEN<=100
LOOP
S:=S+N;
N:=N+2;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('THESUMOF1TO100EVEN
NUMBERSIS'||S);
END;
/
9.Writeaprogramtoacceptanumberandfindhowmany
digitsitcontain

DECLARE
NNUMBER(5):=&N;
CNTNUMBER:=0;
RNUMBER(2):=0;
BEGIN
WHILEN!=0
LOOP
R:=MOD(N,10);
CNT:=CNT+1;
N:=TRUNC(N/10);
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('NUMBEROFDIGITSOF
GIVENNUMBERIS'||CNT);
END;
/
10.Writeaprogramtoacceptanumberandfindthesumof
thedigits
DECLARE
NNUMBER(5):=&N;
SNUMBER:=0;
RNUMBER(2):=0;
BEGIN
WHILEN!=0
LOOP
R:=MOD(N,10);
S:=S+R;
N:=TRUNC(N/10);
ENDLOOP;

DBMS_OUTPUT.PUT_LINE('SUMOFDIGITSOFGIVEN
NUMBERIS'||S);
END;
/
11.Writeaprogramtoacceptanumberandprintitin
reverseorder
DECLARE
NNUMBER(5):=&N;
REVNUMBER(5):=0;
RNUMBER(5):=0;
BEGIN
WHILEN!=0
LOOP
R:=MOD(N,10);
REV:=REV*10+R;
N:=TRUNC(N/10);
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('THEREVERSEOFAGIVEN
NUMBERIS'||REV);
END;
/
12.Writeaprogramtoacceptanoandcheckwhetheritis
Armstrongnumberornot

13.WriteaporgramtogeneratealltheArmstrongnumbers
from1to1000
14.Writeaprogramtogenerateallprimenumbersbetween
1to100
15.Writeaprogramtoaceeptanumberandcheckwhether
itisprimenumberornot
16.Writeaprogramtodisplaythefibonacciseriesfrom1to
10
17.Writeaprogramtoaceeptanumberandprintitin
binaryformat
18.Writeaprogramtoacceptanumberandfindthe
factorialofthenumber
19.Findthefactorialsofnumbersfrom1to10
DECLARE
FACTNUMBER:=1;
VVARCHAR2(100);
BEGIN
FORIIN1..10
LOOP
FORJIN1..I
LOOP
FACT:=FACT*J;
V:=J||'*'||V;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE(RTRIM(V,'*')||'='||FACT);
FACT:=1;
V:=NULL;
ENDLOOP;

END;
/
20.Writeaprogramtoaceeptanumberanddisplayitinthe
Octalformat
DECLARE
NNUMBER(2):=&N;
RNUMBER(2);
VVARCHAR2(1000);
BEGIN
WHILEN>0
LOOP
R:=MOD(N,8);
V:=R||V;
N:=TRUNC(N/8);
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('OCTALOFAGIVEN
NUMBERIS'||V);
END;
/
21.Writeaprogramtoacceptanumberandprintthe
multiplicationtablesuptosoo
DECLARE
NNUMBER(2):=&N;
MNUMBER;
BEGIN
FORIINN..N+5

LOOP
FORJIN1..10

LOOP
M:=I*J;
DBMS_OUTPUT.PUT_LINE(I||'*'||J||'='||M);
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('*********************');
ENDLOOP;
END;
/
22.WriteaprogramtoacceptthetempinCentigradeand
convertitintoFahrenheit(c=F32/1.8)
DECLARE
CNUMBER:=&C;
FNUMBER;
BEGIN
F:=C*1.8+32;
DBMS_OUTPUT.PUT_LINE('THEFARENHETTOFGIVEN
OCIS'||F);
END;
/
23.Writeaprogramtocalculatetheareaofatriangleby
acceptingthe3sides
(s=(a+b+c)/2area=sqrt(s*(sa)*(sb)*(sc)))
DECLARE
SNUMBER;
ANUMBER:=&A;
BNUMBER:=&B;
CNUMBER:=&C;

AREANUMBER(7,2);
BEGIN
S:=(A+B+C)/2;
AREA:=SQRT(S*(SA)*(SB)*(SC));
DBMS_OUTPUT.PUT_LINE('THEAREAOFTRIANGLEIS
'||AREA);
END;
/
24.Writeaprogramtocalculatetheareaofacircleby
acceptingtheradiusandunitofmeasureArea=PI*r2
DECLARE
RNUMBER:=&R;
AREANUMBER(7,2);
BEGIN
AREA:=(22/7)*R*R;
DBMS_OUTPUT.PUT_LINE('THEAREAOFCIRCLEIS'||
AREA);
END;
/
25.Writeaprogramtocalculatetheperimeterofa
circle(perimeter=2*PI*r)
DECLARE
RNUMBER:=&R;
PERIMETERNUMBER(7,2);
BEGIN

PERIMETER:=2*(22/7)*R;
DBMS_OUTPUT.PUT_LINE('THEPERIMETEROFCIRCLE
IS'||PERIMETER);
END;
/
26.Writeaprogramtoacceptthe3sidesofthetriangleand
displaythetypeoftriangle
DECLARE
ANUMBER(4,2):=&A;
BNUMBER(4,2):=&B;
CNUMBER(4,2):=&C;
PERIMETERNUMBER(7,2);
BEGIN
IF(A=BANDB=CANDC=A)THEN
DBMS_OUTPUT.PUT_LINE('EQUILATERALTRIANGLE');
ELSIFA=BORA=CORC=BTHEN
DBMS_OUTPUT.PUT_LINE('ISOSOCELESSTRIANGLE');
ELSE
DBMS_OUTPUT.PUT_LINE('SCALENTRIANGLE');
ENDIF;
END;
/
27.WriteaprogramacceptthevalueofA,B&Cdisplay
whichisgreater
DECLARE
ANUMBER(4,2):=&A;

BNUMBER(4,2):=&B;
CNUMBER(4,2):=&C;
BEGIN
IF(A>BANDA>C)THEN
DBMS_OUTPUT.PUT_LINE('AISGREATER'||''||A);
ELSIFB>CTHEN
DBMS_OUTPUT.PUT_LINE('BISGREATE'||''||B);
ELSE
DBMS_OUTPUT.PUT_LINE('CISGREATER'||''||C);
ENDIF;
END;
/
28.Writeaprogramacceptastringandcheckwhetheritis
palindromeornot
DECLARE
SVARCHAR2(10):='&S';
LVARCHAR2(20);
TEMPVARCHAR2(10);
BEGIN
FORIINREVERSE1..LENGTH(S)
LOOP
L:=SUBSTR(S,I,1);
TEMP:=TEMP||''||L;
ENDLOOP;
IFTEMP=STHEN
DBMS_OUTPUT.PUT_LINE(TEMP||''||'ISPALINDROME');
ELSE

DBMS_OUTPUT.PUT_LINE(TEMP||''||'ISNOT
PALINDROME');
ENDIF;
END;
/
29.WriteaprogramaceeptsthevalueofA,Bandswapthe
nosandprintthevalues
DECLARE
ANUMBER(2):=&A;
BNUMBER(2):=&B;
FLAGNUMBER(2);
BEGIN
FLAG:=A;
A:=B;
B:=FLAG;
DBMS_OUTPUT.PUT_LINE('A'||'='||A||'AND'||''||'B'||'='||B);
END;
/
30.WriteaprogramtoacceptthevaluesofA,Bandswap
thenumbersandprintthevalues
withoutusingthirdvariable
DECLARE
ANUMBER(2):=&A;
BNUMBER(2):=&B;
FLAGNUMBER(2);
BEGIN

FLAG:=A;
A:=B;
B:=FLAG;
DBMS_OUTPUT.PUT_LINE('A'||'='||A||'AND'||''||'B'||'='||B);
END;
/
31.Writeaprogramtoacceptthesideofasquareand
calculatetheareaarea=a2
DECLARE
ANUMBER:=&A;
AREANUMBER(5);
BEGIN
AREA:=A*A;
DBMS_OUTPUT.PUT_LINE('AREAOFASQUAREIS'||''||
AREA);
END;
/
32.Writeaprogramtoacceptprincipleamount,rate,time
calculatethesimpleinterestsi=(p*t*r)/100
DECLARE
PNUMBER(6,2):=&P;
RNUMBER(6,2):=&R;
TNUMBER(6,2):=&T;
SINUMBER(6,2);
BEGIN
SI:=(P*R*T)/100;

DBMS_OUTPUT.PUT_LINE('SIMPLEINTERESTIS'||''||SI);
END;
/
33.Eriteaprogramtoaceepttheprincipleamount,rate,time
andfindthecompoundinterest
ci=p*(1+r/100)n
DECLARE
PNUMBER(6,2):=&P;
RNUMBER(6,2):=&R;
TNUMBER(6,2):=&T;
CINUMBER(6,2);
BEGIN
CI:=P*POWER(1+(R/100),T);
DBMS_OUTPUT.PUT_LINE('COMPOUNDINTERESTIS'||
CI);
END;
/
34.WAPtocalculatethesumof1!+2!+......+n!
DECLARE
NNUMBER:=&N;
SNUMBER:=0;
FNUMBER:=1;
BEGIN
FORIIN1..N
LOOP
FORJIN1..I

LOOP
F:=F*J;
ENDLOOP;
S:=S+F;
F:=1;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('SUMOFFACTIS'||S);
END;
/
35.WAPtocalculatethesumof1+1/2+1/3+......+1/n
DECLARE
NNUMBER:=&N;
ANUMBER;
SNUMBER(6,2):=0;
BEGIN
FORIIN1..N
LOOP
A:=1/I;
S:=S+A;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('SUMOFNOARE'||S);
END;
/
36.WAPtocalculatethesumof1/1!+1/2!+.....+1/n!

DECLARE
NNUMBER:=&N;
SNUMBER(6,2):=0;
FNUMBER:=1;
BEGIN
FORIIN1..N
LOOP
FORJIN1..I
LOOP
F:=F*J;
ENDLOOP;
S:=S+(1/F);
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('SUMIS'||S);
END;
/
37.WAPtocalculatethesumof1/1!+2/2!+......+n/n!
DECLARE
NNUMBER(4):=&N;
SNUMBER(6,2):=0;
FNUMBER(4):=1;
BEGIN
FORIIN1..N
LOOP
FORJIN1..I
LOOP
F:=F*J;
ENDLOOP;

S:=S+(I/F);
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('SUMOFFACTIS'||S);
END;
/
38.Writeaprogramtodisplaythemonthsbetweentwodates
ofayear
DECLARE
DDATE:='&D';
D1DATE:='&D1';
BEGIN
WHILED<D1
LOOP
DBMS_OUTPUT.PUT_LINE(TO_CHAR(D,'MONTH'));
D:=ADD_MONTHS(D,1);
ENDLOOP;
END;
/
39.Writeaprogramtoacceptthedateandprintthe
weekdaysfromthegivendate
DECLARE
DDATE:='&D';
WDDATE;
BEGIN

WD:=D+6;
WHILED<=WD
LOOP
DBMS_OUTPUT.PUT_LINE(TO_CHAR(D,'DAY'));
D:=D+1;
ENDLOOP;
END;
/
40.WAPtoacceptthedateandprinttheweekdaysfromthe
givendatealongwithdateformat
DECLARE
DDATE:='&D';
WDDATE;
BEGIN
WD:=D+6;
WHILED<=WD
LOOP
DBMS_OUTPUT.PUT_LINE(TO_CHAR(D,'DAY')||D);
D:=D+1;
ENDLOOP;
END;
/
41.Writaaprogramtoacceptayearandcheckwhetheritis
leapyearornot
DECLARE
YNUMBER:=&Y;
RNUMBER;

BEGIN
IFMOD(Y,4)=0ANDMOD(Y,100)!=0ORMOD(Y,400)=0
THEN
DBMS_OUTPUT.PUT_LINE(Y||'ISALEAPYEAR');
ELSE
DBMS_OUTPUT.PUT_LINE(Y||'ISNOTALEAPYEAR');
ENDIF;
END;
/
42.Writeaprogramtoacceptayearanddisplayallsundays
alongwiththedate
DECLARE
YNUMBER(4):=&YYYY;
ADATE;
BDATE;
INUMBER(2):=1;
BEGIN
A:=TO_DATE('01JAN'||Y,'DDMONYYYY');
B:=LAST_DAY(ADD_MONTHS(A,11));
WHILEA<=B
LOOP
IFTO_CHAR(A,'D')=1THEN
DBMS_OUTPUT.PUT_LINE(LPAD(I,2,'0')||''||
UPPER(TO_CHAR(A,'DAY'))||A);

I:=I+1;
ENDIF;
A:=A+1;
ENDLOOP;
END;
/
43.WAPtoacceptastringandcounthowmanyvowels
presentinthestring
DECLARE
VVARCHAR2(300):='&V';
CNTNUMBER(5):=0;
CCHAR;
BEGIN
FORIIN1..LENGTH(V)
LOOP
C:=SUBSTR(V,I,1);
IFCIN('A','E','I','O','U')THEN
CNT:=CNT+1;
ENDIF;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('NOOFVOWELSPRESENT=
'||CNT);
END;
/
44.Writeaprogramtoacceptayearandcheckwhetheritis
leapyearornot.Ifitis

leapyearthendisplayhowmanysundayspresentinthat
year
DECLARE
DDATE:='&YEAR';
YVARCHAR2(20);
CNTNUMBER(5):=0;
VVARCHAR2(20);
BEGIN
Y:=TO_CHAR(D,'YYYY');
D:=TO_DATE('01JAN'||Y);
IFMOD(Y,4)=0ANDMOD(Y,100)!=0ORMOD(Y,400)=0
THEN
FORIIN1..366
LOOP
V:=TO_CHAR(D,'D');
IFV=1THEN
CNT:=CNT+1;
ENDIF;
D:=D+1;
DBMS_OUTPUT.PUT_LINE('NOOFVOWELSPRESENT=
'||CNT);
ENDLOOP;
END;
/
45.Writeaprogramtoacceptacharandcheckitisvowelor
consonant
DECLARE
CCHAR:='&C';

BEGIN

IFC='A'ORC='E'ORC='I'ORC='O'ORC='U'THEN
DBMS_OUTPUT.PUT_LINE('VOWEL');
ELSE
DBMS_OUTPUT.PUT_LINE('CONSONANT');
ENDIF;
END;
/
46.WAPtoacceptA,B,C&Dcheckwhetheritis
Ramanujannumberornot
DECLARE
ANUMBER:=&A;
BNUMBER:=&B;
CNUMBER:=&C;
DNUMBER:=&D;
BEGIN
IF
POWER(A,3)+POWER(B,3)=POWER(C,3)+POWER(D,3)
THEN
DBMS_OUTPUT.PUT_LINE(A||CHR(179)||'+'||B||
CHR(179)||'='||C||CHR(179)||'+'||D||CHR(179));
ELSE
DBMS_OUTPUT.PUT_LINE(A||CHR(179)||'+'||B||CHR(179)||'!
='||C||CHR(179)||'+'||D||CHR(179));
ENDIF;
END;
/

47.WAPtoaccepttheCMR&LMR&findoutthetotalbill
amount
i)0100unitsRs.50perunit
ii)101200nunitsRs.o.25perunit
iii)>200unitsRs.1.25perunit
DECLARE
LMRNUMBER(5):=&LMR;
CMRNUMBER(5):=&CMR;
TOTNUMBER(5):=0;
BILLNUMBER(7,2):=0;
BEGIN
TOT:=CMRLMR;
IFTOT<=100THEN
BILL:=TOT*.50;
ELSIFTOT>100ANDTOT<=200THEN
BILL:=(100*.50)+((TOT100)*.75);
ELSE
BILL:=(100*.50)+(100*.75)+(TOT200)*1.25;
ENDIF;
DBMS_OUTPUT.PUT_LINE('TOTALUNITCONSUMED'||
TOT);
DBMS_OUTPUT.PUT_LINE('TOTALBILLAMOUNT'||
BILL);
END;
/
48.WAPoracceptmarksof3subjectasi/pandcalculatethe
totalmarksanddivisionofastudent

i)Iftotmark>=60thendivisionisFirst
ii)Iftotmark<60andtotmark>=50thendivisionissecond
iii)Iftotmark<50and>=35thendivisionisthird
iv)Iftotmark<35thenfail

DECLARE
M1NUMBER(2):=&M1;
M2NUMBER(2):=&M2;
M3NUMBER(2):=&M3;
TOTMARKNUMBER(5,2);
AVENUMBER(5,2):=0;
BEGIN
TOTMARK:=M1+M2+M3;
AVE:=TOTMARK/3;
IFAVE>=60THEN
DBMS_OUTPUT.PUT_LINE('THEDIVISIONISFIRST'||
AVE);
ELSIFAVE<60ANDAVE>=50THEN
DBMS_OUTPUT.PUT_LINE('THEDIVISIONISSECOND'||
AVE);
ELSIFAVE<50ANDAVE>=35THEN
DBMS_OUTPUT.PUT_LINE('THEDIVISIONISTHIRD'||
AVE);
ELSE
DBMS_OUTPUT.PUT_LINE('FAIL'||AVE);
ENDIF;
END;
/
49.WAPtoacceptanumberandprintitsmultiplication
tablehorinzontally
DECLARE
JNUMBER:=&J;
VVARCHAR2(1000);

KNUMBER(3);
BEGIN
FORIIN1..10
LOOP
K:=J*I;
V:=V||J||'*'||I||'='||K||'';
ENDLOOP;
DBMS_OUTPUT.PUT_LINE(V);
END;
/
50.WAPtoacceptastringandprintitinreverseorder
DECLARE
STRVARCHAR2(100):='&sTR';
STR1VARCHAR2(100);
NNUMBER(5);
LVARCHAR2(20);
BEGIN
N:=LENGTH(STR);
FORIIN1..N
LOOP
L:=SUBSTR(STR,I,1);
STR1:=L||STR1;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE(STR1);
END;
/

51.Writeaprogramtoacceptanumberandfindoutthe
sumoffirstand

lastdigits
DECLARE
ANUMBER(4):=&A;
BNUMBER(5):=0;
CNUMBER(5):=0;
SNUMBER(5);
BEGIN
IFA>9THEN
C:=SUBSTR(A,1,1);
B:=SUBSTR(A,LENGTH(A),1);
S:=B+C;
ELSE
S:=A;
ENDIF;
DBMS_OUTPUT.PUT_LINE('SUMOFFIRSTANDLAST
DIGITIS'||S);
END;
/
52.WAPtoacceptthebasicsalaryandfindoutthe
ta,da,hra,licandgs
i)ta20%ofbasic,da10%ofbasic,hra30%ofbasic,lic5%of
basic
DECLARE
BSNUMBER(6,2):=&BS;
TANUMBER(6,2);
DANUMBER(6,2);
HRANUMBER(6,2);

GSNUMBER(6,2);
LICNUMBER(6,2);
NSNUMBER(8,2);
BEGIN
TA:=BS*(20/100);
HRA:=BS*(30/100);
DA:=BS*(10/100);
LIC:=BS*(5/100);
GS:=TA+HRA+DA;
NS:=GSLIC;
DBMS_OUTPUT.PUT_LINE('EMPLOYEEBSIS'||BS);
DBMS_OUTPUT.PUT_LINE('GROSSSALARYIS'||GS);
DBMS_OUTPUT.PUT_LINE('NETSALARYIS'||NS);
END;
/
53.WAPtoacceptthelengthandbreadthofarectangleand
findouttheperimeter
DECLARE
LNUMBER(4,2):=&L;
BNUMBER(4,2):=&B;
ANUMBER(4,2);
BEGIN
A:=2*(L+B);
DBMS_OUTPUT.PUT_LINE('THEPERIMETEROF
RECTANGLEIS'||A);
END;
/

54.WAPtoacceptthecostpriceandsellingpriceofanitem
andfind

thelossorprofit
DECLARE
CPNUMBER(25,2):=&CP;
SPNUMBER(25,2):=&SP;
AMTNUMBER(7,2);
BEGIN
IFCP<SPTHEN
AMT:=SPCP;
DBMS_OUTPUT.PUT_LINE('PROFITIS'||AMT);
ELSE
AMT:=CPSP;
DBMS_OUTPUT.PUT_LINE('LOSSIS'||AMT);
ENDIF;
END;
/
55.Writaprogramtogeneratethefollowingseries
5353535353
43434343
333333
2323
13
DECLARE
VVARCHAR2(20);
BEGIN
FORIINREVERSE1..5
LOOP
FORJIN1..I

LOOP
V:=V||I||CHR(179);
ENDLOOP;
DBMS_OUTPUT.PUT_LINE(V);
V:=NULL;
ENDLOOP;
END;
/
56.WAPtoacceptanoinbinaryformatandprintitin
decimalformat
DECLARE
NVARCHAR2(20):=&N;
PRONUMBER(10,4):=0;
LVARCHAR2(10);
BEGIN
FORIIN1..LENGTH(N)
LOOP
L:=SUBSTR(N,I,1);
PRO:=PRO+L*POWER(2,LENGTH(N)I);
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('THEDECIMALNUMBERIS'||
PRO);
END;
/
57.WAPtoaccepttwonosandinputandfindonenois
raisedtoanotherone(withoutusinganyfunction)

DECLARE
ANUMBER:=&A;
BNUMBER:=&B;
RNUMBER:=1;
BEGIN
FORIIN1..B
LOOP
R:=R*A;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('ARAISEDPOWERBIS'||R);
END;
/
58.WAPtoacceptasentenceandcountthenoofcharsin
thatsentence
DECLARE
STRVARCHAR2(100):='&STR';
NONUMBER(5):=0;
INUMBER;
BEGIN
I:=INSTR(STR,'.');
DBMS_OUTPUT.PUT_LINE('NOOFCHARIS'||I);
END;
/
59.WAPtoaccepttwostringsanddisplaythelargeone
amongthose
DECLARE
STR1VARCHAR2(100):='&STR1';
STR2VARCHAR2(100):='&STR2';

BEGIN
IFLENGTH(STR1)>LENGTH(STR2)THEN
DBMS_OUTPUT.PUT_LINE(STR1||'ISGREATER');
ELSIFLENGTH(STR1)<LENGTH(STR2)THEN
DBMS_OUTPUT.PUT_LINE(STR2||'ISGREATER');
ELSE
DBMS_OUTPUT.PUT_LINE('BOTHSTRINGSARE
EQUAL');
ENDIF;
END;
/
60.WAPtodisplayallthenoswhosesumofdigitsis9from1
to9999
DECLARE
NNUMBER;
MNUMBER;
SNUMBER:=0;
BEGIN
FORIIN1..999
LOOP
N:=I;
WHILEN>0
LOOP
M:=MOD(N,10);
S:=S+M;
N:=TRUNC(N/10);

ENDLOOP;
IFS=9THEN
DBMS_OUTPUT.PUT_LINE(I||'');
ENDIF;
S:=0;
ENDLOOP;
END;
/
61.WAPtoacceptanoandfindthesuminasingledigit
DECLARE
NNUMBER(4):=&N;
SNUMBER(10):=0;
BEGIN
WHILELENGTH(N)>1
LOOP
FORIIN1..LENGTH(N)
LOOP
S:=S+SUBSTR(N,I,1);
ENDLOOP;
N:=S;
S:=0;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('THESUMINSINGLEDIGIT
IS'||N);
END;
/
62.Enterthenoofdaysandfindoutthenoofyearsandno
ofdaysandmonths

DECLARE
DNUMBER:=&D;
YNUMBER;
MNUMBER;
BEGIN
Y:=TRUNC(D/365);
M:=TRUNC(MOD(D,365)/30);
D:=MOD(MOD(D,365),30);
DBMS_OUTPUT.PUT_LINE(Y||'YEARS'||M||'MONTHS'||
D||'DAYS');
END;
/
63.WAPtoacceptthedateandprintalltheweekdaysalong
withthegivendate
DECLARE
DDATE:='&D';
VVARCHAR2(20);
BEGIN
FORIIN1..7
LOOP
V:=TO_CHAR(D,'DAY')||D;
DBMS_OUTPUT.PUT_LINE(V);
D:=D+1;
ENDLOOP;
END;

/
64.WAPwhilepurchasingcertainitems,discountofeachis
asfollows
i)Ifqtypurchased>1000discountis20%
ii)Iftheqtyandpriceperitemarei/pthencalculatethe
expenditure
DECLARE
QTYNUMBER(5):=&QTY;
UPNUMBER(6,2):=&UP;
DISNUMBER(6,2):=0;
TAMTNUMBER(10,2);
BILLNUMBER(10,2);
BEGIN
BILL:=QTY*UP;
IFBILL>1000THEN
DIS:=BILL*20/1000;
ENDIF;
TAMT:=BILLDIS;
DBMS_OUTPUT.PUT_LINE('THETOTALAMOUNTIS'||
TAMT);
END;
/
65.Writeaprogramtoacceptastringandcountthenoof
individualchars
DECLARE
VVARCHAR2(100):='&V';
V1VARCHAR2(100);

LBNUMBER;
LANUMBER;
DIFFNUMBER;
CCHAR;
NNUMBER(5):=0;
BEGIN
V1:=V;
WHILELENGTH(V1)>0
LOOP
C:=SUBSTR(V1,1,1);
LB:=LENGTH(V1);
V1:=REPLACE(V1,C);
LA:=NVL(LENGTH(V1),0);
DIFF:=LBLA;
IFASCII(C)=32THEN
DBMS_OUTPUT.PUT_LINE('SPACE'||'EXISTS'||DIFF||'
TIMES');
ELSE
DBMS_OUTPUT.PUT_LINE(C||'EXISTS'||DIFF||'TIMES');
ENDIF;
N:=N+DIFF;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('TOTALLENGTHOFTHE
GIVENSTRING'||V||'='||N);
END;
/
66.Writeaprogramtodisplayallcombinationof1,2,&3

BEGIN
FORIIN1..3
LOOP
FORJIN1..3
LOOP
FORKIN1..3
LOOP
DBMS_OUTPUT.PUT_LINE(I||J||K);
ENDLOOP;
ENDLOOP;
ENDLOOP;
END;
/
67.Writeaprogramtofindouttheseries12+22+32+42+....+
+n2
DECLARE
NNUMBER:=&N;
ANUMBER:=1;
BNUMBER:=2;
CNUMBER:=0;
DNUMBER:=0;
SNUMBER:=0;
BEGIN
WHILEA<=N
LOOP
C:=C+A*A;
A:=A+2;
ENDLOOP;

WHILEB<=N
LOOP
D:=D+B*B;
B:=B+2;
ENDLOOP;
S:=CD;
DBMS_OUTPUT.PUT_LINE('RESULTIS'||S);
END;
/
68.WriteaprogramtoaccepthetimeinHH&MINformat
andfindthetotalsenconds
DECLARE
HNUMBER:=&HOUR;
MNUMBER:=&MINUTE;
SNUMBER(10):=0;
BEGIN
S:=(H*60*60)+(M*60);
DBMS_OUTPUT.PUT_LINE(H||'HOURS'||M||'MINUTES
'||'IS'||S||'SECONDS');
END;
/
69.WAPtoacceptthedistancebetweentwocitiesinkmand
convertintomts,cm&ft
DECLARE

DNUMBER:=&D;
MNUMBER:=0;
CMNUMBER:=0;
FTNUMBER:=0;
BEGIN
M:=D*1000;
CM:=M*100;
FT:=ROUND(CM/12.3);
DBMS_OUTPUT.PUT_LINE('DISTANCEINMETERSIS'||
M);
DBMS_OUTPUT.PUT_LINE('DISTANCEIN
CENTIMETERSIS'||CM);
DBMS_OUTPUT.PUT_LINE('DISTANCEINFOOTIS'||FT);
END;
/
70.Writeaprogramtofindtheseriesx+x2/2!+x3/3!+.....
+xn/n!
DECLARE
NNUMBER:=&N;
XNUMBER:=&X;
SNUMBER:=0;
FNUMBER:=1;
BEGIN
FORIIN1..N
LOOP
FORJIN1..I
LOOP
F:=F*J;

ENDLOOP;
S:=ROUND(s+(POWER(X,I)/F),3);
F:=1;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('SUMOFNUMBERIS'||S);
END;
/
71.Writeaprogramtoacceptthepopulationofhyderabad
eachyearthepopulationincreases
2%after4ywhatisthepopulationofhyd
DECLARE
PNUMBER:=&P;
LNUMBER;
BEGIN
FORJIN1..4
LOOP
L:=P*2/100;
P:=P+L;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('POPULATIONOF
HYDERABADAFTER4YEARSIS'||TRUNC(P));
END;
/
72.WAPtoacceptthe3datesanddisplaythemostrecently
monthamong3dates
DECLARE

D1DATE:='&D1';
D2DATE:='&D2';
D3DATE:='&D3';
M1NUMBER;
M2NUMBER;
M3NUMBER;
BEGIN
M1:=TO_CHAR(D1,'MM');
M2:=TO_CHAR(D2,'MM');
M3:=TO_CHAR(D3,'MM');
IFM1>M2ANDM1>M3THEN
DBMS_OUTPUT.PUT_LINE(TO_CHAR(D1,'MON')||'IS
RECENTMONTH');
ELSIFM2>M1ANDM2>M3THEN
DBMS_OUTPUT.PUT_LINE(TO_CHAR(D2,'MON')||'IS
RECENTMONTH');
ELSE
DBMS_OUTPUT.PUT_LINE(TO_CHAR(D3,'MON')||'IS
RECENTMONTH');
ENDIF;
END;
/
73.Acceptastringandprintinthefollowingformat
O
OR
ORA
ORAC
ORACL

ORACLE
DECLARE
VVARCHAR2(20):='&V';
CVARCHAR(20);
BEGIN
FORIIN1..LENGTH(V)
LOOP
C:=SUBSTR(V,1,I);
DBMS_OUTPUT.PUT_LINE(C);
ENDLOOP;
END;
/
74.Writeaprogramtoaccepttheannualincomeoftheemp
andfindtheincometax
i)Iftheannsal>60000thentaxis10%ofincome
ii)Iftheannsal>100000thentaxisRs800+16%ofincome
iii)Iftheannsal>140000thentaxisRs2500+25%ofincome
DECLARE
AINUMBER(10,2):=&ANNUALINCOME;
TAXNUMBER(10,3):=0;
BEGIN
IFAIBETWEEN36000AND50000THEN
TAX:=AI*10/100;
ELSIFAIBETWEEN50000AND100000THEN
TAX:=800+AI*16/100;
ELSIFAI>100000THEN
TAX:=2500+AI*25/100;
ENDIF;

DBMS_OUTPUT.PUT_LINE('ANNUALINCOME'||AI);
DBMS_OUTPUT.PUT_LINE('TAX'||TAX);
END;
/
75.WAPtoacceptayearasi/p&findhowmanyeven
numberpresentinthatyear
DECLARE
YNUMBER:=&YEAR;
AVARCHAR2(20);
CNTNUMBER(5):=0;
BEGIN
FORIIN1..LENGTH(Y)
LOOP
A:=SUBSTR(Y,I,1);
IFMOD(A,2)=0THEN
CNT:=CNT+1;
ENDIF;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('NUMBEROFEVENDIGITIS
'||CNT);
END;
/
76.WAPtoacceptayearasi/p&findhowmanyodd
numberpresentinthatyear
DECLARE
YNUMBER:=&YEAR;
AVARCHAR2(20);

CNTNUMBER(5):=0;
BEGIN
FORIIN1..LENGTH(Y)
LOOP
A:=SUBSTR(Y,I,1);
IFMOD(A,2)!=0THEN
CNT:=CNT+1;
ENDIF;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('NUMBEROFEVENDIGITIS
'||CNT);
END;
/
77.WAPtoacceptanumberandcalculatethesumof
numbersinevenplaces
DECLARE
NNUMBER:=&NUMBER;
AVARCHAR2(10);
SNUMBER:=0;
BEGIN
FORIIN1..LENGTH(N)
LOOP
A:=SUBSTR(N,I,1);
IFMOD(I,2)=0THEN
S:=S+A;
ENDIF;

ENDLOOP;
DBMS_OUTPUT.PUT_LINE('SUMOFEVENPLACEIS'||S);
END;
/
78.WAPtoaccepttheempdetailsandcalculatethebonus
basedonthefollowingconditions
i)Ifsal<500thenbonusis10%sal
ii)Ifsal>3500thenbonusis12%sal
iii)Ifsal>1000thenbonusis13.5%sal
DECLARE
EMPNOVNUMBER:=&EMPNOV;
SALVNUMBER;
BNUMBER(7,2);
BEGIN
SELECTSALINTOSALVFROMEMPWHERE
EMPNO=EMPNOV;
IFSALVBETWEEN500AND3500THEN
B:=SALV*10/100;
ELSIFSALVBETWEEN3500AND10000THEN
B:=SALV*12/100;
ELSIFSALV>10000THEN
B:=SALV*13.5/100;
ENDIF;
DBMS_OUTPUT.PUT_LINE('EMPNO'||EMPNOV);
DBMS_OUTPUT.PUT_LINE('SALARY'||SALV);
DBMS_OUTPUT.PUT_LINE('BONUS'||B);
END;
/

79.WAPtoaccepttheempnoanddisplayename,sal,hiredate
andcalculateta,da,hra,lic,gross,expand
printallempdetails.tais30%ofsal,dais20%ofsal,hrais
15%ofsal,licis5%ofsal
DECLARE
EMPNOVNUMBER:=&EMPNOV;
ENAMEVEMP.ENAME%TYPE;
SALVEMP.SAL%TYPE;
HIREDATEVEMP.HIREDATE%TYPE;
EXPNUMBER(7,2);
TANUMBER(7,2);
DANUMBER(7,2);
HRANUMBER(7,2);
LICNUMBER(7,2);
GROSSNUMBER(7,2);
SNUMBER:=0;
BEGIN
SELECTENAME,SAL,HIREDATEINTO
ENAMEV,SALV,HIREDATEVFROMEMPWHERE
EMPNO=EMPNOV;
EXP:=ROUND(MONTHS_BETWEEN(SYSDATE,HIREDAT
EV)/12,3);
TA:=SALV*30/100;
DA:=SALV*20/100;
HRA:=SALV*15/100;
LIC:=SALV*5/100;
GROSS:=SALV+TA+DA+HRALIC;
DBMS_OUTPUT.PUT_LINE('EMPNO'||EMPNOV);

DBMS_OUTPUT.PUT_LINE('ENAME'||ENAMEV);
DBMS_OUTPUT.PUT_LINE('SALARY'||SALV);
DBMS_OUTPUT.PUT_LINE('EXPERIENCE'||EXP);
DBMS_OUTPUT.PUT_LINE('TA'||TA);
DBMS_OUTPUT.PUT_LINE('DA'||DA);
DBMS_OUTPUT.PUT_LINE('HRA'||HRA);
DBMS_OUTPUT.PUT_LINE('LIC'||LIC);
DBMS_OUTPUT.PUT_LINE('GROSS'||GROSS);
END;
/
80.WAPtoaccepttheitemno,itemname,qty,unitpriceand
calculatethebill
Ifthebill>500thengivediscount2%ofbillamountand
displaythedetails
DECLARE
INONUMBER:=&INO;
INAMEVARCHAR2(50):='&INAME';
QTYNUMBER(5):=&QTY;
UPNUMBER(7,2):=&UP;
DISNUMBER(7,2):=0;
BILLNUMBER(7,2);
NETNUMBER(7,2);
BEGIN
BILL:=QTY*UP;
IFBILL>500THEN
DIS:=BILL*2/100;
ENDIF;
NET:=BILLDIS;

DBMS_OUTPUT.PUT_LINE('ITEMNO'||INO);
DBMS_OUTPUT.PUT_LINE('ITEMNAME'||INAME);
DBMS_OUTPUT.PUT_LINE('QUANTITY'||QTY);
DBMS_OUTPUT.PUT_LINE('UNITPRICE'||UP);
DBMS_OUTPUT.PUT_LINE('BILLAMT'||BILL);
DBMS_OUTPUT.PUT_LINE('DISCOUNT'||DIS);
DBMS_OUTPUT.PUT_LINE('NETAMT'||NET);
END;
/
81.Writeaprogramtogeneratesequenceofnumbers
horizontallyfrom1to25
DECLARE
VVARCHAR2(100);
BEGIN
FORIIN1..25
LOOP
V:=V||''||I;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE(V);
END;
/
82.WAPtoacceptaempnoanddisplay
empno,name,sal,exp,dname,gradeandloc.

DECLARE
EMPNOVNUMBER:=&EMPNO;
ENAMEVEMP.ENAME%TYPE;
HIREDATEVDATE;
SALVEMP.SAL%TYPE;
EXPNUMBER;
DNAMEVDEPT.DNAME%TYPE;
GRADEVSALGRADE.GRADE%TYPE;
BEGIN
SELECTENAME,SAL,HIREDATE,DNAME,GRADEINTO
ENAMEV,SALV,HIREDATEV,DNAMEV,GRADEVFROM
EMP,DEPT,SALGRADE
WHEREEMPNO=EMPNOVAND
EMP.DEPTNO=DEPT.DEPTNOANDSALBETWEEN
LOSALANDHISAL;
EXP:=ROUND(MONTHS_BETWEEN(SYSDATE,HIREDAT
EV)/12,3);
DBMS_OUTPUT.PUT_LINE('EMPNO'||EMPNOV);
DBMS_OUTPUT.PUT_LINE('ENAME'||ENAMEV);
DBMS_OUTPUT.PUT_LINE('SALARY'||SALV);
DBMS_OUTPUT.PUT_LINE('EXPERIENCE'||EXP||'
YEARS');
DBMS_OUTPUT.PUT_LINE('DNAME'||DNAMEV);
DBMS_OUTPUT.PUT_LINE('GRADE'||GRADEV);
END;
/

83.WAPtoacceptaempnoanddisplayempno,basedon
experiencecalculatethebonusandstoreitintothebonus
table
Ifexp>5yearsthenbonusis1monthsalary
Ifexpbetween5and9yearsthenbonusis20%ofannual
salary
Ifexpmorethan9yearsthenbonusis1monthsalplus25%
ofannualsalary
DECLARE
EMPNOVNUMBER:=&EMPNO;
ENAMEVEMP.ENAME%TYPE;
HIREDATEVDATE;
SALVEMP.SAL%TYPE;
EXPNUMBER;
DNAMEVDEPT.DNAME%TYPE;
GRADEVSALGRADE.GRADE%TYPE;
BEGIN
SELECTENAME,SAL,HIREDATE,DNAME,GRADEINTO
ENAMEV,SALV,HIREDATEV,DNAMEV,GRADEVFROM
EMP,DEPT,SALGRADE
WHEREEMPNO=EMPNOVAND
EMP.DEPTNO=DEPT.DEPTNOANDSALBETWEEN
LOSALANDHISAL;
EXP:=ROUND(MONTHS_BETWEEN(SYSDATE,HIREDAT
EV)/12,3);
DBMS_OUTPUT.PUT_LINE('EMPNO'||EMPNOV);
DBMS_OUTPUT.PUT_LINE('ENAME'||ENAMEV);
DBMS_OUTPUT.PUT_LINE('SALARY'||SALV);

DBMS_OUTPUT.PUT_LINE('EXPERIENCE'||EXP||'
YEARS');
DBMS_OUTPUT.PUT_LINE('DNAME'||DNAMEV);
DBMS_OUTPUT.PUT_LINE('GRADE'||GRADEV);
END;
/
84.WAPtoaccepttheempno,baseduponthedname
transfertheempsie,makethechangesintheemptable.
TransfertheempsfromAccountingdepttoResearch,
ResearchdepttoOperation,OpertiondepttoSales

andSalestoAccountingdept
DECLARE
EMPNOVNUMBER:=&EMPNO;
DNAMEVVARCHAR2(20);
DNAMEVVVARCHAR2(20);
BEGIN
SELECTDNAMEINTODNAMEVFROMEMP,DEPT
WHEREEMPNO=EMPNOVAND
EMP.DEPTNO=DEPT.DEPTNO;
IFDNAMEV='ACCOUNTING'THEN
DNAMEVV:='RESEARCH';
ELSIFDNAMEV='RESEARCH'THEN
DNAMEVV:='SALES';
ELSIFDNAMEV='SALES'THEN
DNAMEVV:='OPERATIONS';
ELSIFDNAMEV='OPERATIONS'THEN
DNAMEVV:='ACCOUNTING';
ENDIF;
UPDATEEMPSETDEPTNO=(SELECTDEPTNOFROM
DEPTWHEREDNAME=DNAMEVV)WHERE
EMPNO=EMPNOV;
END;
/
85.WAPtoaccepttheempnoanddisplayallthedetailsof
emp.Ifempdoesnotexistdisplaytheappreciatemessage
DECLARE
EMPNOVNUMBER:=&EMPNO;
EMPVEMP%ROWTYPE;

BEGIN
SELECT*INTOEMPVFROMEMPWHERE
EMPNO=EMPNOV;
DBMS_OUTPUT.PUT_LINE('EMPNO'||EMPV.EMPNO);
DBMS_OUTPUT.PUT_LINE('ENAME'||EMPV.ENAME);
DBMS_OUTPUT.PUT_LINE('JOB'||EMPV.JOB);
DBMS_OUTPUT.PUT_LINE('SALARY'||EMPV.SAL);
DBMS_OUTPUT.PUT_LINE('HIREDATE'||
EMPV.HIREDATE);
DBMS_OUTPUT.PUT_LINE('DEPTNO'||EMPV.DEPTNO);
DBMS_OUTPUT.PUT_LINE('MGRNO'||EMPV.MGR);
DBMS_OUTPUT.PUT_LINE('COMMISSION'||
EMPV.COMM);
EXCEPTION
WHENNO_DATA_FOUNDTHEN
DBMS_OUTPUT.PUT_LINE('EMPNUMBERDOESNOT
EXIST');
END;
/
86.WAPtoaccepttheempnoandprintallthedetailsof
emp,deptandsalgrade
DECLARE
EEMP%ROWTYPE;
DDEPT%ROWTYPE;
SSALGRADE%ROWTYPE;
BEGIN
SELECT*INTOEFROMEMPWHEREEMPNO=&EMPNO;

SELECT*INTODFROMDEPTWHERE
E.DEPTNO=DEPT.DEPTNO;
SELECT*INTOSFROMSALGRADEWHEREE.SAL
BETWEENLOSALANDHISAL;

DBMS_OUTPUT.PUT_LINE('EMPNO'||E.EMPNO);
DBMS_OUTPUT.PUT_LINE('DEPTNO'||D.DEPTNO);
DBMS_OUTPUT.PUT_LINE('DNAME'||D.DNAME);
DBMS_OUTPUT.PUT_LINE('LOCATION'||D.LOC);
DBMS_OUTPUT.PUT_LINE('GRADE'||S.GRADE);
DBMS_OUTPUT.PUT_LINE('HISALARY'||S.HISAL);
DBMS_OUTPUT.PUT_LINE('LOWSALARY'||S.LOSAL);
END;
/
87.WAPtoacceptthemgrnoanddisplaythe
empno,ename,sal,dnameandgradeofallempsworking
underthatmgr
DECLARE
MGRVNUMBER:=&MGRV;
CURSOREMPCURIS
SELECTEMPNO,ENAME,SAL,DEPTNO,GRADEFROM
EMP,SALGRADEWHEREMGR=MGRVANDSAL
BETWEENLOSALANDHISAL;
XEMPCUR%ROWTYPE;
BEGIN
OPENEMPCUR;
LOOP
FETCHEMPCURINTOX;
EXITWHENEMPCUR%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('EMPNO'||X.EMPNO);
DBMS_OUTPUT.PUT_LINE('ENAME'||X.ENAME);
DBMS_OUTPUT.PUT_LINE('SALARY'||X.SAL);
DBMS_OUTPUT.PUT_LINE('DEPTNO'||X.DEPTNO);

DBMS_OUTPUT.PUT_LINE('GRADE'||X.GRADE);
DBMS_OUTPUT.PUT_LINE('******************');
ENDLOOP;
CLOSEEMPCUR;
END;
/
88.WAPtoaccepttheempnoanddisplaytheexpwith
minimum3decimalplaces
DECLARE
EMPNOVNUMBER:=&EMPNOV;
HIREDATEVDATE;
EXPVNUMBER(10,5);
BEGIN
SELECTHIREDATEINTOHIREDATEVFROMEMP
WHEREEMPNO=EMPNOV;
EXPV:=ROUND(MONTHS_BETWEEN(SYSDATE,HIREDA
TEV)/12,3);
DBMS_OUTPUT.PUT_LINE('EXPERIENCEOFEMP'||
EMPNOV||'IS'||EXPV||'YEARS');
END;
/
89.Writeaprogramtoprintthefollowingseries
1
12
123
1234
12345

DECLARE
VVARCHAR2(20);
BEGIN
FORIIN1..5
LOOP
FORJIN1..I
LOOP
V:=V||''||J;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE(V);
V:=NULL;
ENDLOOP;
END;
/
90.Writeaprogramtoprintthefollowingseries
1
21
321
4321
54321
DECLARE
VVARCHAR2(20);
BEGIN
FORIIN1..5
LOOP
FORJINREVERSE1..I
LOOP
V:=V||''||J;

ENDLOOP;
DBMS_OUTPUT.PUT_LINE(V);
V:=NULL;
ENDLOOP;
END;
/
91.Writeaprogramtoprintthefollowingseries
12345
1234
123
12
1
DECLARE
VVARCHAR2(20);
BEGIN
FORIINREVERSE1..5
LOOP
FORJIN1..I
LOOP
V:=V||''||J;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE(V);
V:=NULL;
ENDLOOP;
END;

/
92.Writeaprogramtoprintthefollowingseries
11111
22222
33333
44444
55555
DECLARE
VVARCHAR2(20);
BEGIN
FORIIN1..5
LOOP
FORJIN1..5
LOOP
V:=V||''||I;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE(V);
V:=NULL;
ENDLOOP;
END;
/
93.Writeaprogramtoprintthefollowingseries
12345
12345
12345
12345
12345

DECLARE
VVARCHAR2(20);
BEGIN
FORIIN1..5
LOOP
FORJIN1..5
LOOP
V:=V||''||J;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE(V);
V:=NULL;
ENDLOOP;
END;
/
94.Writeaprogramtoprintthefollowingseries
54321
5432
543
54
5
DECLARE
VVARCHAR2(20);
BEGIN
FORIIN1..5

LOOP
FORJINREVERSE1..5
LOOP
IFI<=JTHEN
V:=V||''||J;
ENDIF;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE(V);
V:=NULL;
ENDLOOP;
END;
/
95.Writeaprogramtoprintthefollowingseries
55555
4444
333
22
1
DECLARE
VVARCHAR2(20);
BEGIN
FORIINREVERSE1..5
LOOP
FORJIN1..5
LOOP
IFI>=JTHEN
V:=V||''||I;
ENDIF;

ENDLOOP;
DBMS_OUTPUT.PUT_LINE(V);
V:=NULL;
ENDLOOP;
END;
/
96.Writeaprogramtoprintthefollowingseries
1
22
333
4444
55555
DECLARE
VVARCHAR2(20);
BEGIN
FORIIN1..5
LOOP
FORJIN1..I
LOOP
V:=V||''||I;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE(V);
V:=NULL;
ENDLOOP;
END;

/
97.Writeaprogramtoprintthefollowingseries
1
01
101
0101
10101
DECLARE
ANUMBER:=1;
VVARCHAR2(20):=1;
BEGIN
DBMS_OUTPUT.PUT_LINE(V);
FORIIN1..4
LOOP
IFSUBSTR(V,1,1)='1'THEN
V:='0'||V;
ELSE
V:='1'||V;
ENDIF;
DBMS_OUTPUT.PUT_LINE(V);
ENDLOOP;
END;
/
98.Writeaprogramtoprintthefollowingseries
*
**

***
****
*****
DECLARE
VVARCHAR2(20);
BEGIN
FORIIN1..5
LOOP
FORJIN1..I
LOOP
V:=V||''||'*';
ENDLOOP;
DBMS_OUTPUT.PUT_LINE(V);
V:=NULL;
ENDLOOP;
END;
/
99.Writeaprogramtoprintthefollowingseries
*
**
***
****
*****
****
***
**

*
DECLARE
VVARCHAR2(20);
BEGIN
FORIIN1..5
LOOP
FORJIN1..I
LOOP
V:=V||''||'*';
ENDLOOP;
DBMS_OUTPUT.PUT_LINE(V);
V:=NULL;
ENDLOOP;
FORIINREVERSE1..5
LOOP
FORJIN2..I
LOOP
V:=V||''||'*';
ENDLOOP;
DBMS_OUTPUT.PUT_LINE(V);
V:=NULL;
ENDLOOP;
END;
/
100.Writeaprogramtoprintthefollowingseries
12345
2345
345

45
5
DECLARE
VVARCHAR2(20);
BEGIN
FORIIN1..5
LOOP
FORJINI..5
LOOP
V:=V||''||J;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE(V);
V:=NULL;
ENDLOOP;
END;
/
101.Writeaprogramtoprintthefollowingseries
54321
4321
321
21
1
DECLARE
VVARCHAR2(20);

BEGIN
FORIINREVERSE1..5
LOOP
FORJINREVERSE1..I
LOOP
V:=V||''||J;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE(V);
V:=NULL;
ENDLOOP;
END;
/
102.WAPtoaccept2nosandfindthesumandproductof
thenosandprinttheoutput
DECLARE
ANUMBER:=&A;
BNUMBER:=&B;
SNUMBER;
MNUMBER;
BEGIN
S:=A+B;
M:=A*B;
DBMS_OUTPUT.PUT_LINE('SUMOF'||'A'||'AND'||'B'||'IS'||
S);
DBMS_OUTPUT.PUT_LINE('PRODUCTOF'||'A'||'AND
'||'B'||'IS'||M);
END;
/

103.WAPtoaccept2nosandfindtheremainderwhenthe
firstnumberisdividedbysencond(dontusemodfunction)
DECLARE
ANUMBER:=&A;
BNUMBER:=&B;
CNUMBER;
MNUMBER;
BEGIN
C:=TRUNC(A/B);
M:=AC*B;
DBMS_OUTPUT.PUT_LINE('REMAINDERIS'||M);
END;
/
104.WAPtodisplayalltheASCIIcharacters094857,A
Z6590,az97122
BEGIN
FORIIN1..255
LOOP
DBMS_OUTPUT.PUT_LINE(I||''||CHR(I));
ENDLOOP;
END;
/
105.Printthefollowingformat

ORACLE
ORACL
ORAC
ORA
OR
O
DECLARE
STRVARCHAR2(10):='&STR';
LVARCHAR2(10);
NNUMBER(15);
BEGIN
N:=LENGTH(STR);
WHILEN>=1
LOOP
L:=SUBSTR(STR,1,N);
N:=N1;
DBMS_OUTPUT.PUT_LINE(L);
ENDLOOP;
END;
/
106.WAPtodisplay"GOODMORNING"or"GOOD
AFTERNOON"or"GOODNIGHT"dependinguponthe
currenttime
DECLARE
HHNUMBER;
BEGIN
HH:=TO_CHAR(SYSDATE,'HH24');
IFHH>6ANDHH<12THEN

DBMS_OUTPUT.PUT_LINE('GOODMORNING');
ELSIFHH>=12ANDHH<18THEN
DBMS_OUTPUT.PUT_LINE('GOODAFTERNOON');
ELSIFHH>=18ANDHH<25THEN
DBMS_OUTPUT.PUT_LINE('GOODNIGHT');
ENDIF;
END;
/
107.WAPtoaccepttwostringsandconcatthetwostrings
DECLARE
STRVARCHAR2(20):='&STR';
STR1VARCHAR2(20):='&STR1';
VVARCHAR2(40);
BEGIN
V:=STR||''||STR1;
DBMS_OUTPUT.PUT_LINE(V);
END;
/
108.WAPtoacceptastringandcountthenoofchars,words
inthatstring
DECLARE
STRVARCHAR2(20):='&STR';
NOCNUMBER(4):=0;

NOWNUMBER(4):=1;
SCHAR;
BEGIN
FORIIN1..LENGTH(STR)
LOOP
S:=SUBSTR(STR,I,1);
NOC:=NOC+1;
IFS=''THEN
NOW:=NOW+1;
ENDIF;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('THENO.OFCHARS'||NOC);
DBMS_OUTPUT.PUT_LINE('THENO.OFWORDS'||NOW);
END;
/
109.WAPtoaccepttheoctalnumberandprintitindecimal
format
DECLARE
NVARCHAR2(20):='&N';
ANUMBER;
PNUMBER:=0;
CCHAR;
BEGIN
A:=LENGTH(N);
FORIIN1..A
LOOP
C:=SUBSTR(N,I,1);
P:=P+C*POWER(8,AI);

ENDLOOP;
DBMS_OUTPUT.PUT_LINE('THEINTEGEROFAGIVEN
OCTALIS'||P);
END;
/
110.WAPtoacceptthemgrandfindhowmanyempsare
workingunderthatmgr
DECLARE
MGRVEMP.MGR%TYPE:=&MGRNO;
NNUMBER:=0;
BEGIN
SELECTCOUNT(*)INTONFROMEMPWHERE
MGR=MGRV;
DBMS_OUTPUT.PUT_LINE('NUMBEROFEMPLOYEE
UNDERTHATMANAGERARE'||N);
END;
/
111.WAPtoaccepttheempnoandupdatetheemployeerow
onthefollowing
Ifsal<2600thensal=sal+10%ofsalmakethechangesinthe
emptable
DECLARE
EMPNOVEMP.EMPNO%TYPE:=&EMPNO;
SALVNUMBER(7,2):=0;
BEGIN
SELECTSALINTOSALVFROMEMPWHERE
EMPNO=EMPNOV;

IFSALV<2600THEN
SALV:=SALV+SALV*(10/100);

ENDIF;
UPDATEEMPSETSAL=SALVWHERE
EMPNO=EMPNOV;
DBMS_OUTPUT.PUT_LINE('EMPNOIS'||EMPNOV);
DBMS_OUTPUT.PUT_LINE('SALIS'||SALV);
END;
/
112.Writethefloyd'striangle
1
23
456
78910
1112131415
161718192021
...............
79..............91
DECLARE
NNUMBER:=1;
VVARCHAR2(100);
BEGIN
FORIIN1..92
LOOP
FORJIN1..I
LOOP
V:=V||''||N;
N:=N+1;
EXITWHENN=92;
ENDLOOP;

DBMS_OUTPUT.PUT_LINE(V);
EXITWHENN=92;
V:=NULL;
ENDLOOP;
END;
/
113.WAPtoaccepttherealvalueandprintintegervalue
only
DECLARE
NNUMBER(7,3):=&N;
ANUMBER(5);
BEGIN
A:=TRUNC(N);
DBMS_OUTPUT.PUT_LINE('REALVALUEIS'||A);
END;
/
114.WAPtocalculatethesumofnoddfactorials
DECLARE
NNUMBER:=&N;
SNUMBER:=0;
FNUMBER:=1;
BEGIN
FORIIN1..N
LOOP
IFMOD(I,2)!=0THEN

FORJIN1..I
LOOP
F:=F*J;
ENDLOOP;
S:=S+F;
F:=1;
ENDIF;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('SUM'||S);
END;
/
115.WAPtocalculatethesumofnevenfactorials
DECLARE
NNUMBER:=&N;
SNUMBER:=0;
FNUMBER:=1;
BEGIN
FORIIN1..N
LOOP
IFMOD(I,2)=0THEN
FORJIN1..I
LOOP
F:=F*J;
ENDLOOP;
S:=S+F;
F:=1;
ENDIF;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('SUM'||S);

END;
/
116.WAPtogeneratethenoswhichareprimeandodd
between1and100
DECLARE
NNUMBER;
CNTNUMBER:=0;
BEGIN
FORIIN1..100
LOOP
FORJIN1..I
LOOP
IFMOD(I,J)=0THEN
CNT:=CNT+1;
ENDIF;
ENDLOOP;
IFCNT<=2THEN
IFMOD(I,2)!=0THEN
DBMS_OUTPUT.PUT_LINE(I);
ENDIF;
ENDIF;
CNT:=0;
ENDLOOP;
END;
/

117.Writeaprogramtogeneratefollowingseries
12
1222
122232
12223242
1222324252
DECLARE
VVARCHAR2(20);
BEGIN
FORIIN1..5
LOOP
FORJIN1..I
LOOP
V:=V||''||J||CHR(178);
ENDLOOP;
DBMS_OUTPUT.PUT_LINE(V);
V:=NULL;
ENDLOOP;
END;
/
118.Findtherootsofaquadraticequation
DECLARE
ANUMBER(4):=&A;
BNUMBER(4):=&B;
CNUMBER(4):=&C;
DNUMBER(8,2);
R1NUMBER(8,2);
R2NUMBER(8,2);

BEGIN
D:=POWER(B,2)4*A*C;
IFD=0THEN
DBMS_OUTPUT.PUT_LINE('ROOTSAREEQUAL');
ELSIFD>0THEN
R1:=(B+SQRT(D))/2*A;
R2:=(BSQRT(D))/2*A;
DBMS_OUTPUT.PUT_LINE('FIRSTROOTIS'||R1);
DBMS_OUTPUT.PUT_LINE('SECONDROOTIS'||R2);
ELSE
DBMS_OUTPUT.PUT_LINE('ROOTSAREIMAGINARY');
ENDIF;
END;
/
119.WAPtoacceptthe2diffnos,assumethatfirstoneis
smallerandsecondoneishighestvaluethenprinttheall
evennosinbetweenthemhorizontally
DECLARE
ANUMBER:=&A;
BNUMBER:=&B;
VVARCHAR2(100);
BEGIN
FORIINA..B

LOOP
IFMOD(I,2)=0THEN
V:=V||''||I;
ENDIF;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE(V);
END;
/
120.WAPtoaccepttwodiffnosassumethatfirstoneis
smallerandsecondoneishighestvaluethenprinttheallodd
nosinbetweenthemhorizontally
DECLARE
ANUMBER:=&A;
BNUMBER:=&B;
VVARCHAR2(100);
BEGIN
FORIINA..B
LOOP
IFMOD(I,2)!=0THEN
V:=V||''||I;
ENDIF;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE(V);
END;
/

121.Writeaprogramtoacceptayearanddisplaytheemps
belongstothatyear?
DECLARE
YNUMBER(4):=&YEAR;
CURSORYEARIS
SELECT*FROMEMPWHERE
TO_CHAR(HIREDATE,'YYYY')=Y;
BYEAR%ROWTYPE;
BEGIN
OPENYEAR;
LOOP
FETCHYEARINTOB;
EXITWHENYEAR%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('EMPNOIS'||B.EMPNO);
DBMS_OUTPUT.PUT_LINE('EMPNAMEIS'||B.ENAME);
DBMS_OUTPUT.PUT_LINE('EMPSALIS'||B.SAL);
DBMS_OUTPUT.PUT_LINE('HIREDATEIS'||
B.HIREDATE);
DBMS_OUTPUT.PUT_LINE('EMPJOBIS'||B.JOB);
DBMS_OUTPUT.PUT_LINE('*************************');
ENDLOOP;
CLOSEYEAR;
END;
/
122.Writeaprogramtoacceptamgranddisplaywhoare
workingunderthatmgr?
DECLARE
MGRVNUMBER(4):=&MGR;

CURSORAMGRIS
SELECT*FROMEMPWHEREMGR=MGRV;
BAMGR%ROWTYPE;
BEGIN
OPENAMGR;
LOOP
FETCHAMGRINTOB;
EXITWHENAMGR%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('EMPNOIS'||B.EMPNO);
DBMS_OUTPUT.PUT_LINE('EMPNAMEIS'||B.ENAME);
DBMS_OUTPUT.PUT_LINE('EMPSALIS'||B.SAL);
DBMS_OUTPUT.PUT_LINE('HIREDATEIS'||
B.HIREDATE);
DBMS_OUTPUT.PUT_LINE('EMPJOBIS'||B.JOB);
DBMS_OUTPUT.PUT_LINE('*************************');
ENDLOOP;
CLOSEAMGR;
END;
/
123.Writeaprogramtoacceptthegradeanddisplayemps
belongstothatgrade?
DECLARE
GRADEVSALGRADE.GRADE%TYPE:=&GRADE;
CURSORAIS
SELECTEMP.*,GRADEFROMEMP,SALGRADEWHERE
SALBETWEENLOSALANDHISALAND
GRADE=GRADEV;
BA%ROWTYPE;

BEGIN
OPENA;
LOOP
FETCHAINTOB;
EXITWHENA%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('EMPNOIS'||B.EMPNO);
DBMS_OUTPUT.PUT_LINE('ENAMEIS'||B.ENAME);
DBMS_OUTPUT.PUT_LINE('SALIS'||B.SAL);
DBMS_OUTPUT.PUT_LINE('MGRNOIS'||B.MGR);
DBMS_OUTPUT.PUT_LINE('COMMIS'||B.COMM);
DBMS_OUTPUT.PUT_LINE('HIREDATEIS'||
B.HIREDATE);
DBMS_OUTPUT.PUT_LINE('GRADEIS'||B.GRADE);
DBMS_OUTPUT.PUT_LINE('EMPJOBIS'||B.JOB);
DBMS_OUTPUT.PUT_LINE('*************************');
ENDLOOP;
CLOSEA;
END;
/
124.Writeaprogramtoacceptadeptnoanddisplaywho
areworkinginthatdept?
DECLARE
DEPTVEMP.DEPTNO%TYPE:=&DEPTNO;
CURSORAIS
SELECT*FROMEMPWHEREDEPTNO=DEPTV;
BA%ROWTYPE;
BEGIN
OPENA;

LOOP
FETCHAINTOB;
EXITWHENA%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('EMPNOIS'||B.EMPNO);
DBMS_OUTPUT.PUT_LINE('ENAMEIS'||B.ENAME);
DBMS_OUTPUT.PUT_LINE('SALIS'||B.SAL);
DBMS_OUTPUT.PUT_LINE('MGRNOIS'||B.MGR);
DBMS_OUTPUT.PUT_LINE('COMMIS'||B.COMM);
DBMS_OUTPUT.PUT_LINE('HIREDATEIS'||
B.HIREDATE);
DBMS_OUTPUT.PUT_LINE('DEPTNOIS'||B.DEPTNO);
DBMS_OUTPUT.PUT_LINE('EMPJOBIS'||B.JOB);
DBMS_OUTPUT.PUT_LINE('*************************');
ENDLOOP;
CLOSEA;
END;
/
125.Writeaprogramtodisplayalltheinformationofemp
table?
DECLARE
CURSORAIS
SELECT*FROMEMP;
BA%ROWTYPE;
BEGIN
OPENA;
LOOP
FETCHAINTOB;

EXITWHENA%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('EMPNOIS'||B.EMPNO);
DBMS_OUTPUT.PUT_LINE('ENAMEIS'||B.ENAME);
DBMS_OUTPUT.PUT_LINE('SALIS'||B.SAL);
DBMS_OUTPUT.PUT_LINE('MGRNOIS'||B.MGR);
DBMS_OUTPUT.PUT_LINE('COMMIS'||B.COMM);
DBMS_OUTPUT.PUT_LINE('HIREDATEIS'||
B.HIREDATE);
DBMS_OUTPUT.PUT_LINE('DEPTNOIS'||B.DEPTNO);
DBMS_OUTPUT.PUT_LINE('EMPJOBIS'||B.JOB);
DBMS_OUTPUT.PUT_LINE('*************************');
ENDLOOP;
CLOSEA;
END;
/
126.Writeaprogramtoacceptthelocationanddisplay
empno,name,sal,dateofjoinandalsodisplaythetotal
salary,avgsalaryandnoofemps?
DECLARE
LOCVDEPT.LOC%TYPE:='&LOC';
TOTNUMBER(10,2):=0;
ASALNUMBER(10,2):=0;
NOEMPSNUMBER(5):=0;
CURSORAIS
SELECTEMP.*,LOCFROMEMP,DEPTWHERE
EMP.DEPTNO=DEPT.DEPTNOANDLOC=LOCV;
BA%ROWTYPE;
BEGIN

OPENA;
LOOP
FETCHAINTOB;
NOEMPS:=NOEMPS+1;
TOT:=TOT+B.SAL;
ASAL:=TOT/NOEMPS;
EXITWHENA%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('EMPNOIS'||B.EMPNO);
DBMS_OUTPUT.PUT_LINE('ENAMEIS'||B.ENAME);
DBMS_OUTPUT.PUT_LINE('SALIS'||B.SAL);
DBMS_OUTPUT.PUT_LINE('HIREDATEIS'||
B.HIREDATE);
DBMS_OUTPUT.PUT_LINE('DEPTNOIS'||B.DEPTNO);
DBMS_OUTPUT.PUT_LINE('EMPJOBIS'||B.JOB);
DBMS_OUTPUT.PUT_LINE('LOCIS'||B.LOC);
DBMS_OUTPUT.PUT_LINE('TOTIS'||TOT);
DBMS_OUTPUT.PUT_LINE('NOEMPSIS'||NOEMPS);
DBMS_OUTPUT.PUT_LINE('ASALIS'||ASAL);
DBMS_OUTPUT.PUT_LINE('*************************');
ENDLOOP;
CLOSEA;
END;
/
127.Writeaprogramtoacceptarangeofsalary(thatis
lowerboundaryandhigherboundary)andprintthedetails
ofempsalongwithloc,gradeandexp?
DECLARE

LOSALVSALGRADE.LOSAL%TYPE:=&LOSAL;
HISALVSALGRADE.HISAL%TYPE:=&HISAL;
EXPNUMBER(5,2);
CURSORAIS
SELECTEMP.*,LOC,GRADEFROM
EMP,DEPT,SALGRADEWHERE
EMP.DEPTNO=DEPT.DEPTNO
ANDSALBETWEENLOSALVANDHISALV
ANDSALBETWEENLOSALANDHISAL;
BA%ROWTYPE;
BEGIN
OPENA;
LOOP
FETCHAINTOB;
EXITWHENA%NOTFOUND;
EXP:=MONTHS_BETWEEN(SYSDATE,B.HIREDATE)/12;
DBMS_OUTPUT.PUT_LINE('EMPNOIS'||B.EMPNO);
DBMS_OUTPUT.PUT_LINE('ENAMEIS'||B.ENAME);
DBMS_OUTPUT.PUT_LINE('EMPJOBIS'||B.JOB);
DBMS_OUTPUT.PUT_LINE('LOCIS'||B.LOC);
DBMS_OUTPUT.PUT_LINE('EXPIS'||EXP);
DBMS_OUTPUT.PUT_LINE('GRADEIS'||B.GRADE);
DBMS_OUTPUT.PUT_LINE('*************************');
ENDLOOP;
CLOSEA;
END;
/

128.Writeaprogramtoprintallthedetailsofemps
acceptingthejob?
DECLARE
JOBVEMP.JOB%TYPE:='&JOB';
CURSORAIS
SELECT*FROMEMPWHEREJOB=JOBV;
BA%ROWTYPE;
BEGIN
OPENA;
LOOP
FETCHAINTOB;
EXITWHENA%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('EMPNOIS'||B.EMPNO);
DBMS_OUTPUT.PUT_LINE('ENAMEIS'||B.ENAME);
DBMS_OUTPUT.PUT_LINE('EMPJOBIS'||B.JOB);
DBMS_OUTPUT.PUT_LINE('*************************');
ENDLOOP;
CLOSEA;
END;
/
129.Writeaprogramtodisplaythedetailsofempsyear
wise?
DECLARE
CURSORYEARSIS
SELECTDISTINCTTO_CHAR(HIREDATE,'YYYY')
YEARS1FROMEMPORDERBY1;
YEARYEARS%ROWTYPE;

CURSORAIS

SELECT*FROMEMPWHERE
TO_CHAR(HIREDATE,'YYYY')=YEAR.YEARS1;
BA%ROWTYPE;
BEGIN
DBMS_OUTPUT.ENABLE(10000);
OPENYEARS;
DBMS_OUTPUT.PUT_LINE('********************');
LOOP
FETCHYEARSINTOYEAR;
EXITWHENYEARS%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('YEAR:'||YEAR.YEARS1);
DBMS_OUTPUT.PUT_LINE('**********************');
OPENA;
LOOP
FETCHAINTOB;
EXITWHENA%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('EMPNOIS'||B.EMPNO);
DBMS_OUTPUT.PUT_LINE('ENAMEIS'||B.ENAME);
DBMS_OUTPUT.PUT_LINE('SALARYIS'||B.SAL);
DBMS_OUTPUT.PUT_LINE('JOBIS'||B.JOB);
DBMS_OUTPUT.PUT_LINE('DEPTNOIS'||B.DEPTNO);
DBMS_OUTPUT.PUT_LINE('*************************');
ENDLOOP;
CLOSEA;
ENDLOOP;
CLOSEYEARS;
END;
/

130.Writeaprogramtoacceptempnoandprintallthe
detailsalongwithlocandgrade?
DECLARE
EMPNOVEMP.EMPNO%TYPE:=&EMPNO;
CURSORAIS
SELECTEMP.*,GRADE,LOCFROM
EMP,DEPT,SALGRADE
WHEREEMP.DEPTNO=DEPT.DEPTNO
ANDSALBETWEENLOSALANDHISALAND
EMPNO=EMPNOV;
BA%ROWTYPE;
BEGIN
OPENA;
LOOP
FETCHAINTOB;
EXITWHENA%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('EMPNOIS'||B.EMPNO);
DBMS_OUTPUT.PUT_LINE('ENAMEIS'||B.ENAME);
DBMS_OUTPUT.PUT_LINE('SALARYIS'||B.SAL);
DBMS_OUTPUT.PUT_LINE('JOBIS'||B.JOB);
DBMS_OUTPUT.PUT_LINE('HIREDATEIS'||
B.HIREDATE);
DBMS_OUTPUT.PUT_LINE('LOCIS'||B.LOC);
DBMS_OUTPUT.PUT_LINE('GRADEIS'||B.GRADE);
DBMS_OUTPUT.PUT_LINE('*************************');
ENDLOOP;
CLOSEA;
END;

/
131.Writeaproceduretocreateyourownprintstatement?

CREATEORREPLACEPROCEDUREPRINT(V
VARCHAR2)
IS
BEGIN
DBMS_OUTPUT.PUT_LINE(V);
END;
/
132.Writeaproceduretoacceptthedeptnoasparameter
anddisplaythedetailsofthatdeptalsodisplaythetotal
salary,noofemployees,maxsalandavgsal?
CREATEORREPLACEPROCEDUREEMPPRO(DEPTNOV
NUMBER)
IS
CURSORAIS
SELECT*FROMEMPWHEREDEPTNO=DEPTNOV;
BA%ROWTYPE;
NOENUMBER:=0;
TOTNUMBER:=0;
AVGSNUMBER(7,2):=0;
MAXSNUMBER(7,2):=0;
BEGIN
OPENA;
LOOP
FETCHAINTOB;
EXITWHENA%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('EMPNO:'||B.EMPNO);
DBMS_OUTPUT.PUT_LINE('ENAME:'||B.ENAME);
DBMS_OUTPUT.PUT_LINE('JOB:'||B.JOB);

DBMS_OUTPUT.PUT_LINE('SAL:'||B.SAL);
DBMS_OUTPUT.PUT_LINE('HIREDATE:'||B.HIREDATE);
DBMS_OUTPUT.PUT_LINE('COMM:'||B.COMM);
DBMS_OUTPUT.PUT_LINE('**********************');
TOT:=TOT+B.SAL;
NOE:=NOE+1;
IFB.SAL>MAXSTHEN
MAXS:=B.SAL;
ENDIF;
ENDLOOP;
AVGS:=TOT/NOE;
DBMS_OUTPUT.PUT_LINE('NOOFEMPLOYEE:'||NOE);
DBMS_OUTPUT.PUT_LINE('TOTALSALARY:'||TOT);
DBMS_OUTPUT.PUT_LINE('AVGSALARY:'||AVGS);
DBMS_OUTPUT.PUT_LINE('MAXSALARY:'||MAXS);
CLOSEA;
END;
/
133.Writeaproceduretoaccepttwodifferentnumbersand
printalloddnumbersbetweenthetwogivennumbers?
CREATEORREPLACEPROCEDUREODDNO(A
NUMBER,BNUMBER)
IS
NNUMBER(4);
BEGIN
N:=A;
WHILEN<B
LOOP

IFMOD(N,2)!=0THEN
DBMS_OUTPUT.PUT_LINE(N);
ENDIF;
N:=N+1;
ENDLOOP;
END;
/
134.Writeaproceduretoaccepttwodifferentnumbersand
printevennumbersbetweenthetwogivennumbers?
CREATEORREPLACEPROCEDUREEVENNO(A
NUMBER,BNUMBER)
IS
NNUMBER(4);
BEGIN
N:=A;
WHILEN<B
LOOP
IFMOD(N,2)=0THEN
DBMS_OUTPUT.PUT_LINE(N);
ENDIF;
N:=N+1;
ENDLOOP;
END;
/
135.Writeaproceduretoacceptdeptnoasinputandprint
thedetailsofempsalongwithgrade?

CREATEORREPLACEPROCEDURE
EMP_DETAIL(DEPTNOVNUMBER)
IS
CURSORAIS
SELECTEMP.*,GRADEFROMEMP,SALGRADE
WHERESALBETWEENLOSALANDHISAL
ANDDEPTNO=DEPTNOV;
BA%ROWTYPE;
BEGIN
OPENA;
LOOP
FETCHAINTOB;
EXITWHENA%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('EMPNOIS'||B.EMPNO);
DBMS_OUTPUT.PUT_LINE('ENAMEIS'||B.ENAME);
DBMS_OUTPUT.PUT_LINE('JOBIS'||B.JOB);
DBMS_OUTPUT.PUT_LINE('SALIS'||B.SAL);
DBMS_OUTPUT.PUT_LINE('DEPTNOIS'||B.DEPTNO);
DBMS_OUTPUT.PUT_LINE('GRADEIS'||B.GRADE);
ENDLOOP;
CLOSEA;
END;
/
136.Writeaproceduretoacceptanumberasparameter
andprintitsmultiplicationtable?
CREATEORREPLACEPROCEDUREMULT(ANUMBER)
IS

BNUMBER(2)DEFAULT1;
CNUMBER(3);
BEGIN
WHILEB<=10
LOOP
C:=A*B;
DBMS_OUTPUT.PUT_LINE(A||'*'||B||'='||C);
B:=B+1;
ENDLOOP;
END;
/
137.Writeaproceduretoaccepttwodifferentnumbersas
inputandprintallevennumbersandoddnumbersin
betweenthemintwodifferenthorizontallines?
CREATEORREPLACEPROCEDUREEVENODD(A
NUMBER,BNUMBER)
IS
NNUMBER;
EVVARCHAR2(1000);
ODVARCHAR2(1000);
BEGIN
N:=A;
WHILEN<B
LOOP
IFMOD(N,2)!=0THEN
OD:=OD||''||N;
ELSE
EV:=EV||''||N;

ENDIF;
N:=N+1;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('THEODDNOSARE'||OD);
DBMS_OUTPUT.PUT_LINE('THEEVENNOSARE'||EV);
END;
/
138.Writeaproceduretoacceptastringandcheckwhether
itispalindromeornot?
CREATEORREPLACEPROCEDURESTRPAL(STR
VARCHAR2)
IS
STR1VARCHAR2(10);
SVARCHAR2(10);
BEGIN
FORIINREVERSE1..LENGTH(STR)
LOOP
S:=SUBSTR(STR,I,1);
STR1:=STR1||S;
ENDLOOP;
IFSTR1=STRTHEN
DBMS_OUTPUT.PUT_LINE('ITISPALINDROME'||STR1);
ELSE
DBMS_OUTPUT.PUT_LINE('ITISNOTPALINDROME'||
STR1);
ENDIF;
END;
/

139.Writeaproceduretoacceptastringandprintitin
reverseorder?
CREATEORREPLACEPROCEDURESTRREV(STR
VARCHAR2)
IS
STR1VARCHAR2(10);
SVARCHAR2(10);
BEGIN
FORIINREVERSE1..LENGTH(STR)
LOOP
S:=SUBSTR(STR,I,1);
STR1:=STR1||S;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('ORIGINAL'||STR);
DBMS_OUTPUT.PUT_LINE('REVERSE'||STR1);
END;
/
140.Writeaproceduretoaccepttheempnoandprintallthe
detailsofempalongwithexp,gradeandloc?
CREATEORREPLACEPROCEDUREEMP_DET(EMPNOV
NUMBER)
IS
EXPNUMBER(6,2);
EEMP%ROWTYPE;
GRADEVSALGRADE.GRADE%TYPE;
LOCVDEPT.LOC%TYPE;
BEGIN

SELECTEMP.*INTOEFROMEMPWHERE
EMPNO=EMPNOV;
SELECTLOCINTOLOCVFROMDEPTWHERE
DEPT.DEPTNO=E.DEPTNO;
SELECTGRADEINTOGRADEVFROMSALGRADE
WHEREE.SALBETWEENLOSALANDHISAL;
EXP:=MONTHS_BETWEEN(SYSDATE,E.HIREDATE)/12;
DBMS_OUTPUT.PUT_LINE('EMPNOIS'||E.EMPNO);
DBMS_OUTPUT.PUT_LINE('ENAMEIS'||E.ENAME);
DBMS_OUTPUT.PUT_LINE('SALIS'||E.SAL);
DBMS_OUTPUT.PUT_LINE('JOBIS'||E.JOB);
DBMS_OUTPUT.PUT_LINE('LOCIS'||LOCV);
DBMS_OUTPUT.PUT_LINE('GRADEIS'||GRADEV);
DBMS_OUTPUT.PUT_LINE('EXPIS'||EXP);
END;
/
141.Writeaproceduretoacceptdnameirrespectiveofcase
andprintallthedetailsofemps?
CREATEORREPLACEPROCEDUREDETAILS(DNAMEV
VARCHAR2)
IS
CURSORAIS
SELECTEMP.*,DNAMEFROMEMP,DEPTWHERE
EMP.DEPTNO=DEPT.DEPTNOANDDNAME=DNAMEV;
BA%ROWTYPE;
BEGIN
OPENA;
LOOP

FETCHAINTOB;

EXITWHENA%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('EMPNOIS'||B.EMPNO);
DBMS_OUTPUT.PUT_LINE('ENAMEIS'||B.ENAME);
DBMS_OUTPUT.PUT_LINE('SALIS'||B.SAL);
DBMS_OUTPUT.PUT_LINE('JOBIS'||B.JOB);
DBMS_OUTPUT.PUT_LINE('DNAMEIS'||B.DNAME);
DBMS_OUTPUT.PUT_LINE('HIREDATEIS'||
B.HIREDATE);
ENDLOOP;
END;
/
142.Writeaproceduretoacceptastringandprintitin
reversecase?
CREATEORREPLACEPROCEDURES_R_CASE(STR
VARCHAR2)
IS
SVARCHAR2(10);
VVARCHAR2(10);
NNUMBER(3);
BEGIN
FORIIN1..LENGTH(STR)
LOOP
S:=SUBSTR(STR,I,1);
N:=ASCII(S);
IFNBETWEEN65AND90THEN
V:=V||CHR(N+32);
ELSE
V:=V||CHR(N32);

ENDIF;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('STRINGINREVERSECASE
IS'||V);
END;
/
143.Writeafunctiontoaccepttheempnoandreturnexp
withminimum3decimal?
CREATEORREPLACEFUNCTIONE_DETAILS(EMPNOV
NUMBER)RETURNNUMBER
IS
HIREDATEVEMP.HIREDATE%TYPE;
EXPNUMBER(6,3);
BEGIN
SELECTHIREDATEINTOHIREDATEVFROMEMP
WHEREEMPNO=EMPNOV;
EXP:=MONTHS_BETWEEN(SYSDATE,HIREDATEV)/12;
RETURNEXP;
END;
/
144.Writeafunctiontoacceptanumberandprintthe
factorialofthatnumber?
CREATEORREPLACEFUNCTIONFAC(NUMNUMBER)
RETURNNUMBER
IS
FACTNUMBER(4):=1;
BEGIN

FORIINREVERSE1..NUM
LOOP
FACT:=FACT*I;

ENDLOOP;
RETURNFACT;
END;
/
145.Writeafunctiontoacceptagradeandreturnthe
numberofempsbelongstothatgrade?
CREATEORREPLACEFUNCTIONEMPGRADE(GRADEV
NUMBER)RETURNVARCHAR2
IS
NNUMBER(4);
BEGIN
SELECTCOUNT(*)INTONFROMEMP,SALGRADE
WHERESALBETWEENLOSALANDHISALAND
GRADE=GRADEV;
RETURN'NOOFEMPSARE'||N;
END;
/
146.Writeaprogramtoacceptthemgrnumberandreturn
noofempworkingatthatmgr?
CREATEORREPLACEFUNCTIONN_EMPS(MGRV
NUMBER)RETURNVARCHAR2
IS
NNUMBER(4);
BEGIN
SELECTCOUNT(*)INTONFROMEMPWHERE
MGR=MGRV;

RETURN'THENOOFEMPSAREWORKINGUNDERTHIS
MGRIS'||N;
END;
/
147.Writeafunctiontoacceptacharacterstringandprint
itinreversecase?
CREATEORREPLACEFUNCTIONREVERSE(STR
VARCHAR2)RETURNVARCHAR2
IS
STR1VARCHAR2(20);
SVARCHAR2(20);
NNUMBER(4);
BEGIN
FORIIN1..LENGTH(STR)
LOOP
S:=SUBSTR(STR,I,1);
N:=ASCII(S);
IFNBETWEEN65AND90THEN
STR1:=STR1||CHR(N+32);
ELSE
STR1:=STR1||CHR(N32);
ENDIF;
ENDLOOP;
RETURN'THEREVERSECASEIS'||STR1;
END;
/

148.Writeafunctiontoacceptastringandcheckwhetherit
ispalindromeornot?
CREATEORREPLACEFUNCTIONSTRPAL1(STR
VARCHAR2)RETURNVARCHAR2

IS
STR1VARCHAR2(10);
SVARCHAR2(10);
BEGIN
FORIINREVERSE1..LENGTH(STR)
LOOP
S:=SUBSTR(STR,I,1);
STR1:=STR1||S;
ENDLOOP;
IFSTR1=STRTHEN
RETURN'ITISPALINDROME'||STR1;
ELSE
RETURN'ITISNOTPALINDROME'||STR1;
ENDIF;
END;
/
149.Writeafunctiontoacceptthegradeandreturnmax,
tot,avgsalaryandnumberofempsbelongstothatgradeas
scriptwithoutusinganygroupfunctions?
CREATEORREPLACEFUNCTION
EMP_DETAILS_SCRIPT(GRADEVSALGRADE.GRADE
%TYPE)RETURNVARCHAR2
IS
VVARCHAR2(30000);
CURSOREMP_CURIS
SELECTEMP.*,GRADE,DNAMEFROM
DEPT,EMP,SALGRADE

WHEREGRADE=GRADEVAND
EMP.DEPTNO=DEPT.DEPTNOAND
SALBETWEENLOSALANDHISAL;
EMP_CUR_VEMP_CUR%ROWTYPE;
MAXSALEMP.SAL%TYPE:=0;
MINSALEMP.SAL%TYPE;
AVGSALNUMBER(6,2);
SUMSALNUMBER(10,2):=0;
CNTNUMBER:=0;
FLAGCHAR:=0;
EXEXCEPTION;
BEGIN
OPENEMP_CUR;
LOOP
FETCHEMP_CURINTOEMP_CUR_V;
EXITWHENEMP_CUR%NOTFOUND;
IFMAXSAL<EMP_CUR_V.SALTHEN
MAXSAL:=EMP_CUR_V.SAL;
ENDIF;
IFFLAG=0THEN
MINSAL:=EMP_CUR_V.SAL;
FLAG:=1;
ELSIFFLAG=1ANDMINSAL>EMP_CUR_V.SALTHEN
MINSAL:=EMP_CUR_V.SAL;
ENDIF;
SUMSAL:=SUMSAL+EMP_CUR_V.SAL;
CNT:=CNT+1;
ENDLOOP;
IFCNT=0THEN

RAISEEX;
ENDIF;

AVGSAL:=SUMSAL/CNT;
V:='THEMAXIMUMSALARYOFGRADE'||GRADEV||'IS'||
MAXSAL||'MINIMUMSALARYIS'||MINSAL||
'AVERAGESALARYIS'||AVGSAL||'TOTALEMPS
WORKINGFORTHISGRADEARE'||CNT;
CLOSEEMP_CUR;
RETURNV;
EXCEPTION
WHENEXTHEN
RETURN'THEREISNOEMPLOYEEWORKINGFORTHIS
GRADE,CHECKANDREENTERTHEGRADE....';
END;
/
150.Createapackagetostorethefollowingprocedurefor
multiplicationtable,evenodd,functionforfactorialand
functionforpalindrome?
CREATEORREPLACEPACKAGEDATA
IS
PROCEDUREMULT(ANUMBER);
PROCEDUREEVEN_ODD(NNUMBER);
FUNCTIONFACT(NNUMBER)RETURNNUMBER;
PRAGMARESTRICT_REFERENCES(FACT,WNDS);
FUNCTIONPALEN(SRTVARCHAR2)RETURN
VARCHAR2;
PRAGMARESTRICT_REFERENCES(PALEN,WNDS);
END;
/
CREATEORREPLACEPACKAGEBODYDATA

IS
PROCEDUREMULT(ANUMBER)
IS
MNUMBER;
BEGIN
FORIIN1..10
LOOP
M:=A*I;
DBMS_OUTPUT.PUT_LINE(A||'*'||I||'='||M);
ENDLOOP;
END;
PROCEDUREEVEN_ODD(NNUMBER)
IS
BEGIN
IFMOD(N,2)=0THEN
DBMS_OUTPUT.PUT_LINE(N||'ISEVENNUMBER');
ELSE
DBMS_OUTPUT.PUT_LINE(N||'ISNOTEVENNUMBER');
ENDIF;
END;
FUNCTIONFACT(NNUMBER)RETURNNUMBER
IS
FNUMBER:=1;
BEGIN
FORIIN1..N
LOOP
F:=F*I;

ENDLOOP;
RETURNF;
END;
FUNCTIONPALEN(SRTVARCHAR2)RETURN
VARCHAR2
IS
SCHAR;
VVARCHAR2(50);
BEGIN
FORIINREVERSE1..LENGTH(SRT)
LOOP
S:=SUBSTR(SRT,I,1);
V:=V||S;
ENDLOOP;
IFV=SRTTHEN
RETURN'PALINDROME';
ELSE
RETURN'NOTPALINDROME';
ENDIF;
END;
END;
/
151.WriteadatabasetriggerhaltthetransactiononSunday
onEMPtable
CREATEORREPLACETRIGGERSUN_TRI
AFTERINSERTORUPDATEORDELETEONEMP
DECLARE
DYVARCHAR2(200);

BEGIN
DY:=TO_CHAR(SYSDATE,'DY');
IFDY='SUN'THEN
RAISE_APPLICATION_ERROR(20005,'TODAYIS
SUNDAYTRANSACTIONNOTALLOWEDTODAY');
ENDIF;
END;
/
152.WriteadatabasetriggerhaltthetransactionofUSER
SCOTTontableEMP
CREATEORREPLACETRIGGERSCOTT_TRI
BEFOREINSERTORUPDATEORDELETEONEMP
BEGIN
IFUSER='SCOTT'THEN
RAISE_APPLICATION_ERROR(20006,'TRANSACTION
NOTALLOWEDFORSCOTT');
ENDIF;
END;
/
153.Writeadatabasetriggerhaltthetransactionbetween
thethetime6pmto10amontableemp
CREATEORREPLACETRIGGEROVER_TIME_TRI
BEFOREINSERTORDELETEORUPDATEONEMP
DECLARE
TNUMBER;

BEGIN
T:=TO_CHAR(SYSDATE,'HH24');
IFTNOTBETWEEN10AND18THEN
RAISE_APPLICATION_ERROR(20007,'TIMEALREADY
OVER.....TRANSACTIONNOTALLOWEDNOW');
ENDIF;
END;
154.Writeadatabasetriggertohaltthetransactionforthe
employeeSALESMANand
PRESIDENT
CREATEORREPLACETRIGGERSALES_PRI
BEFOREINSERTORUPDATEORDELETEONEMP
FOREACHROW
WHEN(OLD.JOBIN('SALESMAN','PRESIDENT')OR
NEW.JOBIN('SALESMAN','PRESIDENT'))
BEGIN
RAISE_APPLICATION_ERROR(20008,'TRANSACTION
NOTALLOWEDFORSALESMANANDPRESIDENT....');
END;
/
155.Writeadatabasetriggerstroetheusername,typeof
transaction,dateoftransactionandtimeoftransactionof
tableempintothetableEMP_LOG
CREATEORREPLACETRIGGERTRANS_TYPE
AFTERINSERTORUPDATEORDELETEONEMP
DECLARE
VVARCHAR2(50);

BEGIN
IFINSERTINGTHEN
V:='I';
ELSIFUPDATINGTHEN
V:='U';
ELSE
V:='D';
ENDIF;
INSERTINTOEMP_LOGVALUES
(USER,V,SYSDATE,TO_CHAR(SYSDATE,'HH:MI:SS'));
END;
/
156.WriteadatabasetriggerstorethedeleteddataofEMP
tableinEMPDELtable
CREATEORREPLACETRIGGERDEL_TRI
BEFOREDELETEONEMP
FOREACHROW
BEGIN
INSERTINTOEMPDEL
VALUES
(:OLD.EMPNO,:OLD.ENAME,:OLD.JOB,:OLD.MGR,:OLD.
HIREDATE,:OLD.SAL,:OLD.COMM,
:
OLD.DEPTNO,SYSDATE,TO_CHAR(SYSDATE,'HH:MI:SS)
);

END;
/
157.Writeadatabasetriggerdisplaythemessagewhenthe
insertinghiredateisgreaterthansystemdate
CREATEORREPLACETRIGGERHIREDATE_OVER
AFTERINSERTONEMP
FOREACHROW
BEGIN
IF:NEW.HIREDATE>SYSDATETHEN
RAISE_APPLICATION_ERROR(20009,'INVALID
HIREDATE.....');
ENDIF;
END;
/
158.WriteadatabasetriggerhaltthetransactionofEMP
tableifthedeptnoisdoesnotexistinthedepttable
CREATEORREPLACETRIGGERDEPT_NO
BEFOREINSERTORUPDATEORDELETEONEMP
FOREACHROW
DECLARE
DNONUMBER:=0;
BEGIN
SELECTCOUNT(*)INTODNOFROMDEPTWHERE
DEPTNO=:NEW.DEPTNO;
DBMS_OUTPUT.PUT_LINE(DNO);
IFDNO=0THEN

RAISE_APPLICATION_ERROR(20009,'DEPTNONOT
EXISTINDEPTTABLE....');
ENDIF;
END;
/
159.WriteadatabasetriggeraddRs500iftheinserting
salaryislessthanRs1000
CREATEORREPLACETRIGGERSAL_ADD
BEFOREINSERTONEMP
FOREACHROW
BEGIN
IF:NEW.SAL<=1000THEN
:NEW.SAL:=:NEW.SAL+500;
ENDIF;
END;
/
160.Writeadatabasetriggergivetheappropriatemessageif
therecordexceedmorethan100onEMPtable
CREATEORREPLACETRIGGEREMP_OVER_REC
AFTERINSERTONEMP
DECLARE
RNUMBER;
BEGIN
SELECTCOUNT(*)INTORFROMEMP;
IFR>=100THEN

RAISE_APPLICATION_ERROR(20009,'100RECORD
ALLOWEDINEMPTABLE.....');
ENDIF;
END;
/
161.Writeaprogramtomonthandyearanddisplaythe
Calendarofthatmonth.
DECLARE
DNUMBER:=1;
MVARCHAR2(10):='&MONTH';
YNUMBER:=&YEAR;
CCHAR(20);
VVARCHAR2(500);
NNUMBER;
BEGIN
N:=TO_CHAR(LAST_DAY(D||''||M||''||Y),'DD');
C:=TO_CHAR(TO_DATE(D||''||M||''||Y),'DY');
dbms_output.put_line('*********************************'
);
dbms_output.put_line('*'||M||''||Y||'*');
dbms_output.put_line('*SUNMONTUEWEDTHUFRISAT
*');
dbms_output.put_line('*********************************
*');
IFC='MON'THEN
V:='';
ELSIFC='TUE'THEN
V:='';

ELSIFC='WED'THEN
V:='';
ELSIFC='THU'THEN
V:='';
ELSIFC='FRI'THEN
V:='';
ELSIFC='SAT'THEN
V:='';
ENDIF;
FORIIN1..N
LOOP
V:=V||LPAD(I,4);
IFLENGTH(V)=28THEN
dbms_output.put_line(LPAD(V,29,'*')||'*');
V:=NULL;
ENDIF;
ENDLOOP;
dbms_output.put_line('*'||RPAD(V,29)||'*');
END;
/

Vous aimerez peut-être aussi