PL SQL ASSIGNMENT - 5 Solution
PL SQL ASSIGNMENT - 5 Solution
Page 2
PL SQL ASSIGNMENT-5
create or replace procedure pro_que1(n1 in
number,n2 in number)
is
add number(3);
begin
add := n1 + n2;
dbms_output.put_line('addition is
= ' || add);
end;
/
begin
pro_que1(&a, &b);
end;
/
dbms_output.put_line(' before
swaping value of A = ' || a );
dbms_output.put_line(' before
swaping value of B = ' || b );
a := a + b;
b := a - b;
a := a - b;
dbms_output.put_line(' afrer
swaping value of A = ' || a );
dbms_output.put_line(' afrer
swaping value of B = ' || b );
end;
/
begin
pro_que2(&a,&b);
Page 4
PL SQL ASSIGNMENT-5
end;
/
begin
pro_que3(&roll);
end;
/
Page 6
PL SQL ASSIGNMENT-5
select fun_bal(&ano) from dual;
dbms_output.put_line('deposite success');
else
update account set bal
= (mbal + b) where no = ano;
dbms_output.put_line('withdraw success');
end if;
end;
/
+
-- PL/SQL block for perfrom transaction.
declare
ano number := &ano;
b number := &balance;
balance number;
Page 8
PL SQL ASSIGNMENT-5
begin
balance := chk_bal(ano);
update_bal(ano,balance,b);
commit;
end;
/
-- uncompleted...........
end;
/
declare
Book_not_available exception; --
user define exception for book not available.
student_have_book exception; --
user define exception for student have book.
no book.accno%type:=
&book_accno;
roll stud.rollno%type := &rollno;
tran_type char(1) := '&tran_type';
mt_id book_tran.tranid%type;
begin
Page 12
PL SQL ASSIGNMENT-5
if(tran_type = 'i') then
if(f_status(no) = 2) then
--
inserting part
mt_id := mt_id + 1;
dbms_output.put_line(' ----------------------------
book is issued by rollno : ' || roll || '
---------------------------- ');
dbms_output.put_line(' ----------------------------
Page 13
PL SQL ASSIGNMENT-5
------------------------------------------
---------------------------- ');
else
raise student_have_book;
end if;
else
raise
Book_not_available;
end if;
elsif(tran_type = 'r') then
dbms_output.put_line('
this is return book block ');
else
dbms_output.put_line('
enter prorper operation value ');
dbms_output.put_line('
like -> i for issue ');
dbms_output.put_line('
and -> r for return ' );
end if;
exception
when Book_not_available then
dbms_output.put_line('
Page 14
PL SQL ASSIGNMENT-5
book is not available ');
when student_have_book then
dbms_output.put_line('
student have book ');
end;
/
Page 15
PL SQL ASSIGNMENT-5
declare
age number(3);
p_find_age(m_stud.dob,age);
end loop;
end;
/
==============================================
=========== TRIGGER ==========
=============================================
Page 18
PL SQL ASSIGNMENT-5
raise_application_error(-20001,'not allow to perform
operation on student table today');
end if;
end;
/
Page 19
PL SQL ASSIGNMENT-5
create or replace trigger tri_operation_tran before
insert or update on tran
for each row
declare
no_balance exception;
ano number(3);
mbal munber(10);
ta numner(10);
begin
if inserting then
ano := (:new.no);
ta := (:new.
elsif updating then
ano := (:old.no);
else
dbms_output.put_line(' delete
success fully ');
end if;
exception
when no_balance then
dbms_output.put_line(' your
balance insufficient');
end;
Page 20
PL SQL ASSIGNMENT-5
/
-- not complete --
create or replace trigger tir_change_roll
before update on student
for each row
declare
roll_old number(3);
roll_new number(3);
begin
roll_old := (:old.rollno);
roll_new := (:new.rollno);
if (roll_old <> roll_new) then
end;
/
raise_application_error(-20001,'invalid marks');
end if;
end;
/
Page 24
PL SQL ASSIGNMENT-5
create or replace trigger tri_tran before
insert on tran
for each row
declare
mno number(3);
mstatus char(1);
begin
mno := (:new.no);
select status into mstatus from
account where no = mno;
if(mstatus = 'c') then
Page 27