You are on page 1of 36

dhanoopbhaskar@gmail.

com
Create a student database (rollno,name,tot_marks,trade). Write a PL/SQL program
to create student details for each trade adding an extra field ‘rank’ which
includes the ranking details of each student. Also print top 3 rankers.

create table student(rollno INT,name char(25),tot_marks number(10),trade char(25));

create table IT(rollno INT,name char(25),tot_marks number(10),trade char(25),rank number(3));

create table CS(rollno INT,name char(25),tot_marks number(10),trade char(25),rank number(3));

declare

rno INT;

nam char(25);

tot number(10);

trd char(25);

rnk number(3);

mx number(10);

cursor curr is select * from student;

cursor cit is select * from IT;

cursor ccs is select * from CS;

i number(4);

begin

delete from IT;

delete from CS;

open curr;

loop

fetch curr into rno,nam,tot,trd;

if(curr%found) then

if trd='IT' then

Page | 1
dhanoopbhaskar@gmail.com
insert into IT values(rno,nam,tot,trd,rnk);

elsif trd='CS' then

insert into CS values(rno,nam,tot,trd,rnk);

end if;

else

exit;

end if;

end loop;

commit;

close curr;

i:=1;

update CS set rank=null;

open ccs;

loop

fetch ccs into rno,nam,tot,trd,rnk;

if(ccs%found) then

select max(tot_marks) into mx from CS where rank is null;

update CS set rank=i where tot_marks=mx;

i:=i+1;

else

exit;

end if;

end loop;

commit;

close ccs;

i:=1;

update IT set rank=null;


Page | 2
dhanoopbhaskar@gmail.com
open cit;

loop

fetch cit into rno,nam,tot,trd,rnk;

if(cit%found) then

select max(tot_marks) into mx from IT where rank is null;

update IT set rank=i where tot_marks=mx;

i:=i+1;

else

exit;

end if;

end loop;

commit;

close cit;

end;

SQL> select * from student;

ROLLNO NAME TOT_MARKS TRADE

----------------------------------------------------------------------------

1 Ammu 555 IT

2 Appu 556 IT

1 Tinto 585 CS

2 Tintumon 598 CS

3 Kuttoos 542 IT

3 Tuttu 562 CS

6 rows selected.

SQL> select * from IT;

ROLLNO NAME TOT_MARKS TRADE RANK


Page | 3
dhanoopbhaskar@gmail.com
----------------------------------------------------------------------------------------------------------

1 Ammu 555 IT 2

2 Appu 556 IT 1

3 Kuttoos 542 IT 3

SQL> select * from CS;

ROLLNO NAME TOT_MARKS TRADE RANK

------------------------------------------------------------------------------------------------------

1 Tinto 585 CS 2

2 Tintumon 598 CS 1

3 Tuttu 562 CS 3

BANK DATABASE

SQL> create table ACCTMASTER(accno INT primary key,name char(25),balance number(10));

SQL> create table ACCTTRAN(accno INT references ACCTMASTER(accno),tran_date date default


sysdate,deb_cred char(7),flag char(2) default 'N',amount number(10));

SQL> insert into ACCTMASTER values(&accno,'&name',&balance);

Enter value for accno: 101

Enter value for name: Tuttu

SQL> /

Enter value for accno: 102

Enter value for name: Tintumon

Enter value for balance: 19000

SQL> select * from ACCTMASTER;

ACCNO NAME BALANCE

-------------------------------------------------------------

101 Tuttu 10000

Page | 4
dhanoopbhaskar@gmail.com
102 Tintumon 19000

SQL> insert into ACCTTRAN values(&accno,'&tran_date','&deb_cred','&flag',&amt);

Enter value for accno: 101

Enter value for tran_date: 05-JAN-10

Enter value for deb_cred: Debit

Enter value for flag: n

Enter value for amt: 1000

SQL> /

Enter value for accno: 102

Enter value for tran_date: 05-JAN-10

Enter value for deb_cred: Credit

Enter value for flag: n

Enter value for amt: 1000

SQL> select * from ACCTTRAN;

ACCNO TRAN_DATE DEB_CRE FL AMOUNT

-------------------------------------------------------------------------------------

101 05-JAN-10 Debit n 1000

102 05-JAN-10 Credit n 1000

declare

no INT;

bal number(10);

trdate date;

dc char(7);

a number(10);

fl char(2);

cursor ctrn is select * from ACCTTRAN where flag='n' or flag='N';


Page | 5
dhanoopbhaskar@gmail.com
begin

open ctrn;

loop

fetch ctrn into no,trdate,dc,fl,a;

if ctrn%found then

if dc='Debit' then

update ACCTMASTER set balance=balance-a where accno=no;

update ACCTTRAN set flag='Y' where accno=no;

elsif dc='Credit' then

update ACCTMASTER set balance=balance+a where accno=no;

update ACCTTRAN set flag='Y' where accno=no;

end if;

else

exit;

end if;

end loop;

commit;

close ctrn;

end;

SQL> /

PL/SQL procedure successfully completed.

SQL> select * from ACCTMASTER;

ACCNO NAME BALANCE

---------------------------------------------------------------------

101 Tuttu 9000

102 Tintumon 20000

SQL> select * from ACCTTRAN;


Page | 6
dhanoopbhaskar@gmail.com
ACCNO TRAN_DATE DEB_CRE FL AMOUNT

--------------------------------------------------------------------------------

101 05-JAN-10 Debit Y 1000

102 05-JAN-10 Credit Y 1000

HOSPITAL MANAGEMENT

>>>>>>>>>>>>>>>>>>>>CREATE TABLE<<<<<<<<<<<<<<<<<<<<

create table doctors_details(doc_id number(3),name char(15),specialization char(15) primary key


check(specialization in('ENT','GASTRO','CARDIO','OPTHAL', 'ORTHO', 'PSYCHO')),fees
number(8,2));

create table register(regno number(5) primary key,name char(15),age number(3),sex char(3) check(sex
in('M','F')),address char(20),date_reg date,category char(15) references doctors_details(specialization));

create table pat_doc_details(name char(15),doc_name char(15));

>>>>>>>>>>>>>>>>>>>>DOCTORS_DETAILS<<<<<<<<<<<<<<<<<<<<

insert into doctors_details values(&doc_id,'&name','&specialization',&fees);

SQL> insert into doctors_details values(&doc_id,'&name','&specialization',&fees);

Enter value for doc_id: 1

Enter value for name: Tintumon

Enter value for specialization: ENT

Enter value for fees: 100

SQL> /

Enter value for doc_id: 2

Enter value for name: Kuttoos

Enter value for specialization: CARDIO

Enter value for fees: 500

SQL> select * from doctors_details;

DOC_ID NAME SPECIALIZATION FEES


Page | 7
dhanoopbhaskar@gmail.com
-----------------------------------------------------------------------------------

1 Tintumon ENT 100

2 Kuttoos CARDIO 500

>>>>>>>>>>>>>>>>>>>>PL/SQL BLOCK<<<<<<<<<<<<<<<<<<<<

declare

reg number(5);

dname char(15);

pname char(15);

cat char(15);

begin

reg:=&reg;

insert into register values(reg,'&name',&age,'&sex','&address',sysdate,'&category');

select name into pname from register where regno=reg;

select category into cat from register where regno=reg;

select name into dname from doctors_details where specialization=cat;

insert into pat_doc_details values(pname,dname);

dbms_output.put_line('Mr/Mrs/Miss'||pname||' has been refered to '||'Dr.'||dname);

end;

Enter value for reg: 1

Enter value for name: Tuttu

Enter value for age: 17

Enter value for sex: M

Enter value for address: 17/23 vietnam colony

Enter value for category: ENT

Mr/Mrs/MissTuttu has been refered to Dr.Tintumon

PL/SQL procedure successfully completed.


Page | 8
dhanoopbhaskar@gmail.com
SQL> /

Enter value for reg: 2

Enter value for name: Ammu

Enter value for age: 18

Enter value for sex: F

Enter value for address: 18/23 vietnam colony

Enter value for category: ENT

Mr/Mrs/MissAmmu has been refered to Dr.Tintumon

PL/SQL procedure successfully completed.

SQL> /

Enter value for reg: 3

Enter value for name: Appu

Enter value for age: 19

Enter value for sex: M

Enter value for address: 1/23 gandhi colony

Enter value for category: CARDIO

Mr/Mrs/MissAppu has been refered to Dr.Kuttoos

PL/SQL procedure successfully completed.

SQL> select * from register;

REGNO NAME AGE SEX ADDRESS DATE_REG CATEGORY

-------------------------------------------------------------------------------------------------------------------------------

1 Tuttu 17 M 17/23 vietnam colony 07-JAN-10 ENT

2 Ammu 18 F 18/23 vietnam colony 07-JAN-10 ENT

3 Appu 19 M 1/23 gandhi colony 07-JAN-10 CARDIO

>>>>>>>>>>>>>>>>>>>>QUERIES<<<<<<<<<<<<<<<<<<<<

declare

dname1 char(15);
Page | 9
dhanoopbhaskar@gmail.com
dname2 char(15);

dname char(15);

cat char(15);

mx number(3);

cnt number(3);

earn number(8,2);

mxern number(8,2);

f number(8,2);

cursor cur is select distinct category from register;

begin

mx:=0;

mxern:=0;

dname1:='x';

dname2:='x';

open cur;

loop

fetch cur into cat;

if cur%found then

select COUNT(*) into cnt from register where category=cat;

select name into dname from doctors_details where specialization=cat;

select fees into f from doctors_details where specialization=cat;

if cnt>mx then

mx:=cnt;

dname1:=dname;

end if;

earn:=f*cnt;

if earn>mxern then
Page | 10
dhanoopbhaskar@gmail.com
mxern:=earn;

dname2:=dname;

end if;

else

exit;

end if;

end loop;

commit;

close cur;

dbms_output.put_line('The doctor who has attended maximum number of patients is '||dname1);

dbms_output.put_line('The doctor who has earned the maximum is '||dname2);

end;

The doctor who has attended maximum number of patients is Tintumon

The doctor who has earned the maximum is Kuttoos

PL/SQL procedure successfully completed.

LIBRARY MANAGEMENT SYSTEM


>>>>>>>>>>>>>>>>>>>>CREATE TABLE<<<<<<<<<<<<<<<<<<<<

create table book_rec(book_name char(15) primary key,author char(15),total_copies


number(5),available_copies number(5));

create table membership_rec(mem_id number(5) primary key,mem_name char(15),no_of_books_taken


number(2));

create table book_details(book_id number(5) primary key,book_name char(15) references


book_rec(book_name),mem_id number(5));

create table circulation_rec(book_id number(5) references book_details(book_id),mem_id number(5)


references membership_rec(mem_id),issue_date date,return_date date);

>>>>>>>>>>>>>>>>>>>>ADD A NEW BOOK<<<<<<<<<<<<<<<<<<<<

declare

Page | 11
dhanoopbhaskar@gmail.com
bknam char(15);

auth char(15);

tot number(5);

id number(5);

no number(5);

i number(3);

begin

bknam:='&bknam';

auth:='&auth';

tot:=&tot;

insert into book_rec values(bknam,auth,tot,tot);

for i in 1..tot

loop

select MAX(book_id) into no from book_details;

if no is not null then

id:=no+1;

else

id:=1;

end if;

insert into book_details values(id,bknam,null);

end loop;

end;

Enter value for bknam: DCD

Enter value for auth: Mano

Enter value for tot: 3

PL/SQL procedure successfully completed.


Page | 12
dhanoopbhaskar@gmail.com
SQL> /

Enter value for bknam: OS

Enter value for auth: Silber

Enter value for tot: 2

PL/SQL procedure successfully completed.

SQL> select * from book_rec;

BOOK_NAME AUTHOR TOTAL_COPIES AVAILABLE_COPIES

--------------------------------------------------------------------------------------------------------------

DCD Mano 3 3

OS Silber 2 2

SQL> select * from book_details;

BOOK_ID BOOK_NAME MEM_ID

--------------------------------------------------------------

1 DCD

2 DCD

3 DCD

4 OS

5 OS

>>>>>>>>>>>>>>>>>>>>CREATE A NEW MEMBER<<<<<<<<<<<<<<<<<<<<

declare

nam char(15);

id number(5);

no number(5);

i number(3);

begin

nam:='&nam';

select MAX(mem_id) into no from membership_rec;


Page | 13
dhanoopbhaskar@gmail.com
if no is not null then

id:=no+1;

else

id:=1;

end if;

insert into membership_rec values(id,nam,null);

dbms_output.put_line('Mr/Mrs/Miss. '||nam||', your membership id is '||id);

end;

Enter value for nam: Tintumon

Mr/Mrs/Miss. Tintumon , your membership id is 1

PL/SQL procedure successfully completed.

SQL> /

Enter value for nam: Kuttoos

Mr/Mrs/Miss. Kuttoos , your membership id is 2

PL/SQL procedure successfully completed.

SQL> select * from membership_rec;

MEM_ID MEM_NAME NO_OF_BOOKS_TAKEN

--------------------------------------------------------------------------------------

1 Tintumon

2 Kuttoos

>>>>>>>>>>>>>>>>>>>>ISSUE A BOOK<<<<<<<<<<<<<<<<<<<<

declare

bknam char(15);

mid number(5);

bid number(5);

dat date;
Page | 14
dhanoopbhaskar@gmail.com
nam char(15);

n number(5);

begin

bknam:='&bknam';

select MIN(book_id) into bid from book_details where book_name=bknam and mem_id is null;

mid:=&mid;

select mem_name into nam from membership_rec where mem_id=mid;

update book_details set mem_id=mid where book_id=bid;

select no_of_books_taken into n from membership_rec where mem_id=mid;

if n is null then

n:=0;

end if;

update membership_rec set no_of_books_taken=n+1 where mem_id=mid;

update book_rec set available_copies=available_copies-1 where book_name=bknam;

select ADD_months(sysdate,1) into dat from dual;

insert into circulation_rec values(bid,mid,sysdate,dat);

end;

Enter value for bknam: DCD

Enter value for mid: 2

PL/SQL procedure successfully completed.

SQL> /

Enter value for bknam: OS

Enter value for mid: 1

PL/SQL procedure successfully completed.

SQL>/

Enter value for bknam: DCD


Page | 15
dhanoopbhaskar@gmail.com
Enter value for mid: 1

PL/SQL procedure successfully completed.

SQL> select * from book_details;

BOOK_ID BOOK_NAME MEM_ID

------------------------------------------------------------

1 DCD 2

2 DCD 1

3 DCD

4 OS 1

5 OS

SQL> select * from book_rec;

BOOK_NAME AUTHOR TOTAL_COPIES AVAILABLE_COPIES

-------------------------------------------------------------------------------------------------------------

DCD Mano 3 1

OS Silber 2 1

SQL> select * from membership_rec;

MEM_ID MEM_NAME NO_OF_BOOKS_TAKEN

------------------------------------------------------------------------------------

1 Tintumon 2

2 Kuttoos 1

SQL> select * from circulation_rec;

BOOK_ID MEM_ID ISSUE_DAT RETURN_DA

------------------------------------------------------------------------------

1 2 08-JAN-10 08-FEB-10

4 1 08-JAN-10 08-FEB-10

2 1 08-JAN-10 08-FEB-10

>>>>>>>>>>>>>>>>>>>>RETURN A BOOK<<<<<<<<<<<<<<<<<<<<
Page | 16
dhanoopbhaskar@gmail.com
declare

bknam char(15);

id number(5);

bid number(5);

tim number(7,2);

dat date;

begin

bknam:='&bknam';

id:=&id;

select book_id into bid from book_details where book_name=bknam and mem_id=id;

update book_details set mem_id=null where book_id=bid;

update membership_rec set no_of_books_taken=no_of_books_taken-1 where mem_id=id;

update book_rec set available_copies=available_copies+1 where book_name=bknam;

select return_date into dat from circulation_rec where book_id=bid and mem_id=id;

select months_between(sysdate,dat) into tim from dual;

if tim>0 then

dbms_output.put_line('You have to pay fine');

end if;

end;

Enter value for bknam: DCD

Enter value for id: 1

PL/SQL procedure successfully completed.

SQL> select * from book_rec;

BOOK_NAME AUTHOR TOTAL_COPIES AVAILABLE_COPIES

-------------------------------------------------------------------------------------------------------------

DCD Mano 3 2
Page | 17
dhanoopbhaskar@gmail.com
OS Silber 2 1

SQL> select * from membership_rec;

MEM_ID MEM_NAME NO_OF_BOOKS_TAKEN

-----------------------------------------------------------------------------------

1 Tintumon 1

2 Kuttoos 1

SQL> select * from book_details;

BOOK_ID BOOK_NAME MEM_ID

--------------------------------------------------------------

1 DCD 2

2 DCD

3 DCD

4 OS 1

5 OS

SQL> select * from circulation_rec;

BOOK_ID MEM_ID ISSUE_DAT RETURN_DA

------------------------------------------------------------------------------

1 2 08-JAN-10 08-FEB-10

4 1 08-JAN-10 08-FEB-10

2 1 08-JAN-10 08-FEB-10

RAILWAY RESERVATION SYSTEM


>>>>>>>>>>>>>>>>>>>>CREATE TABLE<<<<<<<<<<<<<<<<<<<<

create table train_details(train_name char(15) primary key,total_seats number(3),reserved_seats


number(3));

create table reservation_status(train_name char(15) references train_details(train_name),seat_id


number(3),reserved char(2) check (reserved in('y','n')),customer_name char(15));

Page | 18
dhanoopbhaskar@gmail.com
create table waiting_list(slno number(3),customer_name char(15) primary key,train_name char(15)
references train_details(train_name));

>>>>>>>>>>>>>>>>>>>>ENTER TRAIN DETAILS<<<<<<<<<<<<<<<<<<<<

declare

tname char(15);

tot number(3);

resv number(3);

cursor cur is select * from train_details;

begin

insert into train_details values('&train_name',&total_seats,0);

open cur;

loop

fetch cur into tname,tot,resv;

if cur%found then

for i in 1..tot

loop

insert into reservation_status values(tname,i,'n',null);

end loop;

else

exit;

end if;

end loop;

commit;

close cur;

end;

Enter value for train_name: AA

Page | 19
dhanoopbhaskar@gmail.com
Enter value for total_seats: 3

PL/SQL procedure successfully completed.

SQL> /

Enter value for train_name: BB

Enter value for total_seats: 2

PL/SQL procedure successfully completed.

SQL> select * from train_details;

TRAIN_NAME TOTAL_SEATS RESERVED_SEATS

--------------------------------------------------------------------------------------

AA 3 0

BB 2 0

SQL> select * from reservation_status;

TRAIN_NAME SEAT_ID RE CUSTOMER_NAME

-----------------------------------------------------------------------------------------

AA 1 n

AA 2 n

AA 3 n

BB 1 n

BB 2 n

5 rows selected.

>>>>>>>>>>>>>>>>>>>>RESERVE A SEAT<<<<<<<<<<<<<<<<<<<<

declare

cname char(15);

tname char(15);

tot number(3);

resv number(3);
Page | 20
dhanoopbhaskar@gmail.com
sid number(3);

sno number(3);

sl number(3);

begin

cname:=&cname;

tname:=&tname;

select total_seats into tot from train_details where train_name=tname;

select reserved_seats into resv from train_details where train_name=tname;

if tot>resv then

select MIN(seat_id) into sid from reservation_status where train_name=tname and reserved='n';

update reservation_status set reserved='y' where train_name=tname and seat_id=sid;

update reservation_status set customer_name=cname where train_name=tname and seat_id=sid;

update train_details set reserved_seats=reserved_seats+1 where train_name=tname;

else

select MAX(slno) into sno from waiting_list;

if sno is null then

sl:=1;

else

sl:=sno+1;

end if;

insert into waiting_list values(sl,cname,tname);

end if;

end;

SQL> /

Enter value for cname: 'Tintumon'

Enter value for tname: 'AA'

PL/SQL procedure successfully completed.


Page | 21
dhanoopbhaskar@gmail.com
SQL> /

Enter value for cname: 'Kuttoos'

Enter value for tname: 'BB'

PL/SQL procedure successfully completed.

SQL> /

Enter value for cname: 'Appu'

Enter value for tname: 'BB'

PL/SQL procedure successfully completed.

SQL> /

Enter value for cname: 'Tuttu'

Enter value for tname: 'BB'

PL/SQL procedure successfully completed.

SQL> select * from reservation_status;

TRAIN_NAME SEAT_ID RE CUSTOMER_NAME

---------------------------------------------------------------------------------------

AA 1 y Tintumon

AA 2 n

AA 3 n

BB 1 y Kuttoos

BB 2 y Appu

5 rows selected.

SQL> select * from waiting_list;

SLNO CUSTOMER_NAME TRAIN_NAME

--------------------------------------------------------------------------------

1 Tuttu BB

>>>>>>>>>>>>>>>>>>>>CANCEL A RESERVATION<<<<<<<<<<<<<<<<<<<<
Page | 22
dhanoopbhaskar@gmail.com
declare

cname char(15);

tname char(15);

sid number(3);

sno number(3);

sl number(3);

begin

cname:=&cname;

tname:=&tname;

select seat_id into sid from reservation_status where train_name=tname and customer_name=cname;

select MIN(slno) into sno from waiting_list where train_name=tname;

if sno is not null then

select customer_name into cname from waiting_list where train_name=tname and slno=sno;

update reservation_status set customer_name=cname where train_name=tname and seat_id=sid;

delete from waiting_list where train_name=tname and slno=sno;

else

update reservation_status set reserved='n' where train_name=tname and seat_id=sid;

update reservation_status set customer_name=null where train_name=tname and seat_id=sid;

update train_details set reserved_seats=reserved_seats-1 where train_name=tname;

end if;

end;

Enter value for cname: 'Appu'

Enter value for tname: 'BB'

PL/SQL procedure successfully completed.

SQL> select * from reservation_status;

TRAIN_NAME SEAT_ID RE CUSTOMER_NAME


Page | 23
dhanoopbhaskar@gmail.com
---------------------------------------------------------------------------------------

AA 1 y Tintumon

AA 2 n

AA 3 n

BB 1 y Kuttoos

BB 2 y Tuttu

5 rows selected.

SQL> select * from waiting_list;

SLNO CUSTOMER_NAME TRAIN_NAME

----------------------------------------------------------------------------------

SQL> select * from train_details;

TRAIN_NAME TOTAL_SEATS RESERVED_SEATS

--------------- ----------- --------------

AA 3 1

BB 2 2

RECRUITMENT DATABASE
>>>>>>>>>>>>>>>>>>>>CREATE TABLE<<<<<<<<<<<<<<<<<<<<

create table registration(regno number(6) primary key,name char(15),college char(15),date_of_reg


date,degree char(10));

create table company_details(company_name char(15) primary key,salary number(8));

create table result(regno number(6) references registration(regno),marks number(5),selected char(3)


default 'N');

create table agency_income_details(company_name char(15),agency_profit number(10,2));

>>>>>>>>>>>>>>>>>>>>PROCEDURE<<<<<<<<<<<<<<<<<<<<

create or replace procedure insertreg (pname char,pcoll char,pdgr char) is

Page | 24
dhanoopbhaskar@gmail.com
cname char(15);

no number(6);

r number(6);

cnt number(2);

begin

cname:='&cname';

select max(regno) into no from registration;

if no is null then

r:=1;

else

r:=no+1;

end if;

insert into registration values(r,pname,pcoll,sysdate,pdgr);

dbms_output.put_line(' Registration success, your registration number is '||r);

select COUNT(company_name) into cnt from company_details where company_name=cname;

if cnt=0 then

insert into company_details values(cname,&salary);

end if;

end;

Enter value for cname: Wipro

Enter value for salary: 25000

Procedure created.

COMPANY_NAME SALARY

----------------------------------------------------

Wipro 25000

>>>>>>>>>>>>>>>>>>>>TRIGGER<<<<<<<<<<<<<<<<<<<<
Page | 25
dhanoopbhaskar@gmail.com
create or replace trigger trig after update on company_details for each row

declare

cnam char(15);

profit number(10,2);

intake number(4);

no_reg number(4);

no_appeared number(5);

sal number(10,2);

begin

if updating then

cnam:=:old.company_name;

sal:=:old.salary;

select COUNT(*) into no_reg from registration;

select COUNT(*) into no_appeared from result;

select COUNT(*) into intake from result where selected='Y';

profit:=((100*no_reg + 0.25*sal*intake + 6000*intake) - (50*no_appeared));

insert into agency_income_details values(cnam,profit);

end if;

end;

Trigger created.

>>>>>>>>>>>>>>>>>>>>REGISTER<<<<<<<<<<<<<<<<<<<<

declare

pname char(15);

pcoll char(15);

pdgr char(10);

begin
Page | 26
dhanoopbhaskar@gmail.com
pname:='&pname';

pcoll:='&pcoll';

pdgr:='&pdgr';

insertreg(pname,pcoll,pdgr);

end;

Enter value for pname: Tintumon

Enter value for pcoll: UCE

Enter value for pdgr: B tech

Registration success, your registration number is 1

PL/SQL procedure successfully completed.

SQL> /

Enter value for pname: Kuttoos

Enter value for pcoll: VJC

Enter value for pdgr: B tech

Registration success, your registration number is 2

PL/SQL procedure successfully completed.

SQL> /

Enter value for pname: Tuttu

Enter value for pcoll: UCE

Enter value for pdgr: B tech

Registration success, your registration number is 3

PL/SQL procedure successfully completed.

SQL> select * from registration;

REGNO NAME COLLEGE DATE_OF_R DEGREE

-------------------------------------------------------------------------------------------------------

1 Tintumon UCE 08-JAN-10 B tech


Page | 27
dhanoopbhaskar@gmail.com
2 Kuttoos VJC 08-JAN-10 B tech

3 Tuttu UCE 08-JAN-10 B tech

>>>>>>>>>>>>>>>>>>>>RESULT<<<<<<<<<<<<<<<<<<<<

insert into result values(&regno,&marks,'&selected');

SQL> insert into result values(&regno,&marks,'&selected');

Enter value for regno: 1

Enter value for marks: 98

Enter value for selected:

1 row created.

SQL> /

Enter value for regno: 2

Enter value for marks: 99

Enter value for selected:

1 row created.

SQL> /

Enter value for regno: 3

Enter value for marks: 100

Enter value for selected:

1 row created.

SQL> select * from result;

REGNO MARKS SEL

----------------------------------------------

1 98

2 99

3 100

>>>>>>>>>>>>>>>>>>>>PL/SQL BLOCK<<<<<<<<<<<<<<<<<<<<
Page | 28
dhanoopbhaskar@gmail.com
declare

no_reg number(4);

cnam char(15);

intake number(4);

no_appeared number(5);

i number(3);

rno number(6);

mk number(5);

sel char(3);

mx number(5);

sal number(8);

nam char(15);

cursor cur is select * from result;

begin

cnam:='&cnam';

intake:=&intake;

select COUNT(*) into no_appeared from result;

dbms_output.put_line(' Total no of appearence for the exam: '||no_appeared);

open cur;

loop

fetch cur into rno,mk,sel;

if cur%found then

select COUNT(*) into i from result where selected='Y';

if i=intake then

exit;

end if;

select MAX(marks) into mx from result where selected='N' or selected is null;


Page | 29
dhanoopbhaskar@gmail.com
update result set selected='Y' where marks=mx;

else

exit;

end if;

end loop;

commit;

close cur;

dbms_output.put_line('Selected Candidates');

open cur;

loop

fetch cur into rno,mk,sel;

if cur%found then

if sel='Y' then

select name into nam from registration where regno=rno;

dbms_output.put_line(nam);

end if;

else

exit;

end if;

end loop;

commit;

close cur;

select salary into sal from company_details where company_name=cnam;

update company_details set salary=sal*1 where company_name=cnam;

end;

Enter value for cnam: Wipro


Page | 30
dhanoopbhaskar@gmail.com
Enter value for intake: 2

Total no of appearence for the exam: 3

Selected Candidates

Kuttoos

Tuttu

PL/SQL procedure successfully completed.

SQL> select * from agency_income_details;

COMPANY_NAME AGENCY_PROFIT

------------------------------------------------------

Wipro 24650

SQL> select * from company_details;

COMPANY_NAME SALARY

---------------------------------------------------

Wipro 25000

SQL> select * from registration;

REGNO NAME COLLEGE DATE_OF_R DEGREE

------------------------------------------------------------------------------------------------------

1 Tintumon UCE 08-JAN-10 B tech

2 Kuttoos VJC 08-JAN-10 B tech

3 Tuttu UCE 08-JAN-10 B tech

SQL> select * from result;

REGNO MARKS SEL

-----------------------------------------------

1 98

2 99 Y

3 100 Y
Page | 31
dhanoopbhaskar@gmail.com

UNIVERSITY EXAM REGISTRATION SYSTEM


>>>>>>>>>>>>>>>>>>>>CREATE TABLE<<<<<<<<<<<<<<<<<<<<

create table application(slno number(5) primary key,student_name char(15),branch char(7),college


char(15),date_apply date);

create table university(student_name char(15),branch char(7) check( branch in('CS','IT','EC')),college


char(15));

create table register_nos(regno number(5),student_name char(15),branch char(7),college char(15));

>>>>>>>>>>>>>>>>>>>>UNIVERSITY DATABASE<<<<<<<<<<<<<<<<<<<<<<

insert into university values('&student_name','&branch','&college');

SQL> insert into university values('&student_name','&branch','&college');

Enter value for student_name: Kuttoos

Enter value for branch: IT

Enter value for college: UCE

1 row created.

SQL> /

Enter value for student_name: Tuttu

Enter value for branch: CS

Enter value for college: VJC

1 row created.

SQL> /

Enter value for student_name: Tintumon

Enter value for branch: CS

Enter value for college: UCE

1 row created.

SQL> /

Enter value for student_name: Ammu

Page | 32
dhanoopbhaskar@gmail.com
Enter value for branch: EC

Enter value for college: UCE

1 row created.

SQL> select * from university;

STUDENT_NAME BRANCH COLLEGE

---------------------------------------------------------------

Kuttoos IT UCE

Tuttu CS VJC

Tintumon CS UCE

Ammu EC UCE

>>>>>>>>>>>>>>>>>>>>APPLICATION<<<<<<<<<<<<<<<<<<<<

declare

last_date date;

reg number(5);

no number(5);

rcs number(5);

rec number(5);

rit number(5);

sno number(5);

sname char(15);

brch char(7);

clg char(15);

dat number(7,2);

nam char(15);

begin

rcs:=1000;

rec:=1100;
Page | 33
dhanoopbhaskar@gmail.com
rit:=1200;

last_date:='07-JAN-10';

sno:=&sno;

sname:=&sname;

brch:=&brch;

clg:=&clg;

insert into application values(sno,sname,brch,clg,sysdate);

select student_name into nam from university where student_name=sname and branch=brch and
college=clg;

select months_between(sysdate,last_date) into dat from dual;

if nam is null or dat>0 then

dbms_output.put_line('Application Rejected');

else

select MAX(regno) into no from register_nos where branch=brch;

if no is null then

if brch='IT' then

reg:=rit;

elsif brch='CS' then

reg:=rcs;

elsif brch='EC' then

reg:=rec;

end if;

else

reg:=no+1;

end if;

insert into register_nos values(reg,sname,brch,clg);

dbms_output.put_line('Register No: '||reg);

Page | 34
dhanoopbhaskar@gmail.com
end if;

end;

SQL> /

Enter value for sno: 1

Enter value for sname: 'Tintumon'

Enter value for brch: 'CS'

Enter value for clg: 'UCE'

Register No: 1000

PL/SQL procedure successfully completed.

SQL> /

Enter value for sno: 2

Enter value for sname: 'Kuttoos'

Enter value for brch: 'IT'

Enter value for clg: 'UCE'

Register No: 1200

PL/SQL procedure successfully completed.

SQL> select * from register_nos;

REGNO STUDENT_NAME BRANCH COLLEGE

------------------------------------------------------------------------------------

1000 Tintumon CS UCE


Page | 35
dhanoopbhaskar@gmail.com
1200 Kuttoos IT UCE

SQL> select * from application;

SLNO STUDENT_NAME BRANCH COLLEGE DATE_APPL

--------------------------------------------------------------------------------------------------------------

1 Tintumon CS UCE 07-JAN-10

2 Kuttoos IT UCE 07-JAN-10

Page | 36

You might also like