PROGRAMS
PROGRAMS
declare
rolln number(10);
sname varchar(10);
begin
select rno, stdname into rolln,sname from stud where rno=11;
dbms_output.put_line(rolln);
dbms_output.put_line(sname);
end;
declare
rolln stud.rno%TYPE;
sname stud.stdname%TYPE;
begin
select rno, stdname into rolln,sname from stud where rno=11;
dbms_output.put_line(rolln);
dbms_output.put_line(sname);
end;
declare
rolln number(10);
sname varchar(10);
begin
select rno, stdname into rolln,sname from stud where rno=11;
dbms_output.put_line(rolln);
dbms_output.put_line(sname);
end;
declare
rolln stud.rno%TYPE;
sname stud.stdname%TYPE;
lname sname%TYPE;
begin
select rno, stdname into rolln,sname from stud where rno=11;
dbms_output.put_line(rolln);
dbms_output.put_line(sname);
end;
declare
rolno marksheet.rno%TYPE;
stdname marksheet.sname%TYPE;
begin
select rno,sname into rolno,stdname from marksheet where rno=5;
dbms_output.put_line(rolno);
dbms_output.put_line(stdname);
end;
declare
snm salesperson.sname%TYPE;
ct salesperson.city%TYPE;
sn salesperson.sno%TYPE;
begin
select sno,sname,city into sn,snm,ct from salesperson where sno=4;
dbms_output.put_line(' '||sn||' '||snm||' '||ct);
end;
declare
rec stud%ROWTYPE;
begin
select * into rec from stud where rno=11;
dbms_output.put_line( ' '||rec.rno||' '||rec.stdname || ' ' ||rec.marks );
end;
declare
tbrow marksheet%ROWTYPE;
begin
select * into tbrow from marksheet where rno=12;
dbms_output.put_line('Name '||tbrow.sname);
dbms_output.put_line('marks of marathi '||tbrow.marathi);
end;
declare
sp salesperson%ROWTYPE;
begin
select * into sp from salesperson where sno=3;
dbms_output.put_line(' '||sp.sname);
dbms_output.put_line(' '||sp.city);
dbms_output.put_line(' '||sp.commision);
end;
declare
sp salesperson%ROWTYPE;
begin
select * into sp from salesperson where sno=2;
dbms_output.put_line(' '||sp.sname);
dbms_output.put_line(' '||sp.city);
dbms_output.put_line(' '||sp.commision);
end;
===================================================================================
===================
-- CURSOR having 2 types implicit and explicit
-- Implicit cursor is by default name of that cursor is SQL
-- Explicit cursor we have to declare
-- Attribute of cursor 1- ROWCOUNT, 2- Found, 3-Not found, 4-is open
declare
cnt number(3);
begin
update stud set marks=marks+5 where rno<14;
cnt:=SQL%RowCount;
dbms_output.put_line(cnt);
end;
declare
comm number(10);
begin
update salesperson set commision=commision+100 where commision>=700;
comm:=SQL%RowCount;
dbms_output.put_line(comm);
end;
declare
comm number(10);
begin
update salesperson set commision=commision+100;
comm:=SQL%RowCount;
dbms_output.put_line(comm);
end;
-- Explicit cursor
/*To work on particular records from database we used cursor here we used explicit
cursor
we have to declare cursor syntax - CURSOR cursor name
then used diffrent attribute of cursor like OPEN cursor
FETCH cursor
CLOSE cursor
in the below example first we declare some variable on particular field name on
which we want to work
here declare cursor also and give select query using is
in begin part first open cursor then give loop and then fetch cursor give
particular condition using attribute
print the data you want and close cursor*/
declare
snm salesperson.sname%TYPE;
ct salesperson.city%TYPE;
comm salesperson.commision%TYPE;
CURSOR cur_sales is
select sname,city,commision from salesperson;
begin
OPEN cur_sales;
LOOP
FETCH cur_sales into snm,ct,comm;
EXIT when cur_sales%notfound;
dbms_output.put_line(' '||snm||' '||ct||' '||comm);
end loop;
CLOSE cur_sales;
end;
select * from customer;
declare
cnm customer.cname%TYPE;
ct customer.city%TYPE;
CURSOR cust is select cname, city from customer;
begin
open cust;
loop
fetch cust into cnm,ct;
exit when cust%notfound;
dbms_output.put_line(' '||cnm||' '||ct);
end loop;
close cust;
end;
declare
cnm customer.cname%TYPE;
ct customer.city%TYPE;
CURSOR cust is select cname, city from customer where cno<=14;
begin
open cust;
loop
fetch cust into cnm,ct;
exit when cust%notfound;
dbms_output.put_line(' '||cnm||' '||ct);
end loop;
close cust;
end;
declare
CURSOR cust is select cname, city from customer;
cust_rec cust%RowType;
begin
open cust;
loop
fetch cust into cust_rec;
exit when cust%notfound;
dbms_output.put_line(' '||cust_rec.cname||' '||cust_rec.city);
end loop;
close cust;
end;
select * from marksheet;
declare
CURSOR marks is select rno,sname,marathi from marksheet;
m_rec marks%RowType;
begin
open marks;
loop
fetch marks into m_rec;
exit when marks%notfound;
dbms_output.put_line(' '||m_rec.rno||' '||m_rec.sname||' '||m_rec.marathi);
end loop;
close marks;
end;
declare
CURSOR marks is select rno,sname,marathi from marksheet where sname='pranj';
m_rec marks%RowType;
begin
open marks;
loop
fetch marks into m_rec;
exit when marks%notfound;
dbms_output.put_line(' '||m_rec.rno||' '||m_rec.sname||' '||m_rec.marathi);
end loop;
close marks;
end;
declare
CURSOR marks is select rno, sname from marksheet;
m_rec marks%RowType;
begin
open marks;
if marks%isopen then
dbms_output.put_line('Open');
else
dbms_output.put_line('Close');
end if;
loop
fetch marks into m_rec;
exit when marks%notfound;
dbms_output.put_line(' '||m_rec.rno||' '||m_rec.sname);
end loop;
dbms_output.put_line(marks%rowcount);
close marks;
if marks%isopen then
dbms_output.put_line('Open');
else
dbms_output.put_line('Close');
end if;
end;
declare
CURSOR marks is select rno,sname,marathi from marksheet;
m_rec marks%RowType;
begin
open marks;
fetch marks into m_rec;
while marks%found loop
dbms_output.put_line(' '||m_rec.rno||' '||m_rec.sname||' '||m_rec.marathi);
set serveroutput on
-- Exception Handling
-- When error comes program get crash over , there are 3 type of error 1] Syntax
error 2] logical error 3] run time error
-- exception handling work on run time error
declare
rolno marksheet.rno%TYPE;
snm marksheet.sname%TYPE;
eng marksheet.english%TYPE;
begin
select rno,sname,english into rolno,snm,eng from marksheet where rno=&rno;
dbms_output.put_line(rolno);
dbms_output.put_line(snm);
dbms_output.put_line(eng);
dbms_output.put_line('End of programme');
EXCEPTION
when no_data_found then
dbms_output.put_line('No data found');
end;
declare
fno number(3);
sno number(3);
div number(5);
sumnum number(5);
begin
fno:=&fno;
sno:=&sno;
div:=fno/sno;
dbms_output.put_line(div);
EXCEPTION
when zero_divide then
dbms_output.put_line('Can not divide by zero');
end;
set serveroutput on
-- Exception Handling
-- When error comes program get crash over , there are 3 type of error 1] Syntax
error 2] logical error 3] run time error
-- exception handling work on run time error
declare
rolno marksheet.rno%TYPE;
snm marksheet.sname%TYPE;
eng marksheet.english%TYPE;
begin
select rno,sname,english into rolno,snm,eng from marksheet where rno=&rno;
dbms_output.put_line(rolno);
dbms_output.put_line(snm);
dbms_output.put_line(eng);
dbms_output.put_line('End of programme');
EXCEPTION
when no_data_found then
dbms_output.put_line('No data found');
end;
declare
fno number(3);
sno number(3);
div number(5);
begin
fno:=&fno;
sno:=&sno;
div:=fno/sno;
dbms_output.put_line(div);
EXCEPTION
when zero_divide then
dbms_output.put_line('Can not divide by zero');
end;
declare
ninety_plus_marks EXCEPTION;
rolno marksheet.rno%TYPE;
snm marksheet.sname%TYPE;
eng marksheet.english%TYPE;
begin
select rno,sname,english into rolno,snm,eng from marksheet where rno=&rno;
dbms_output.put_line(rolno);
dbms_output.put_line(snm);
dbms_output.put_line(eng);
if eng<=90 then
update marksheet set english=english+10 where rno=rolno;
else
raise ninety_plus_marks;
end if;
EXCEPTION
when ninety_plus_marks then
dbms_output.put_line('Not allowed');
end;
declare
Excess_comision EXCEPTION;
sn salesperson.sno%TYPE;
snm salesperson.sname%TYPE;
comm salesperson.commision%TYPE;
begin
select sno,sname,commision into sn,snm,comm from salesperson where sno=&sno;
dbms_output.put_line(' '||snm||' '||comm);
if comm<=1000 then
update salesperson set commision=commision+100 where sno=sn;
else
raise Excess_comision;
end if;
EXCEPTION
when Excess_comision then
dbms_output.put_line('Not eligibile for excess commision');
end;
declare
Excess_comision EXCEPTION;
sp salesperson%ROWTYPE;
begin
select * into sp from salesperson where sno=&sno;
dbms_output.put_line(' '||sp.sname||' '||sp.commision);
if sp.commision<=1000 then
update salesperson set commision=commision+100 where sno=sno;
else
raise Excess_comision;
end if;
EXCEPTION
when Excess_comision then
dbms_output.put_line('Not eligibile for excess commision');
end;
set SERVEROUTPUT on;
declare
stud student%ROWTYPE;
CURSOR cur_marks(a number,b number)
is
select * from student where rno between a and b;
begin
open cur_marks(12,16);
loop
fetch cur_marks into stud;
exit when cur_marks%notfound;
dbms_output.put_line(' '||stud.rno||' '||stud.stdname||' '||stud.marks);
end loop;
close cur_marks;
end;
declare
cursor cur_stud
is
select * from student where rno=&rno;
begin
for std in cur_stud loop
dbms_output.put_line(' '||std.rno||' '||std.stdname||' '||std.marks);
end loop;
end;
-- only loop
begin
for std in (select * from student where rno=&rno)
loop
dbms_output.put_line(' '||std.rno||' '||std.stdname||' '||std.marks);
end loop;
end;