Professional Documents
Culture Documents
varchar(10));
Table created.
SQL>\
Enter the sno:2
Enter the sname:baran
Enter the dept:mech
1 row created.
SQL>\
Enter the sno:3
Enter the sname:kiran
Enter the dept:cse
1 row created.
3 rows selected.
Table created.
SQL> set serverout on
SQL> edit
Wrote file afiedt.buf
1 kalai cse
2 baran mech
3 kiran cse
row3
SQL> /
Enter value for no: 2
Enter value for name: kkk
Enter value for old: 35
Enter value for new: 46
Enter value for total: 0
Enter value for amt: 0
old 1: insert into v115 values(&no,'&name',&old,&new,&total,&amt)
new 1: insert into v115 values(2,'kkk',345,700,0,0)
1 row created.
SQL> /
Enter value for no: 3
Enter value for name: ggg
Enter value for old: 25
Enter value for new: 26
Enter value for total: 0
Enter value for amt: 0
old 1: insert into v115 values(&no,'&name',&old,&new,&total,&amt)
new 1: insert into v115 values(3,'ggg',500,800,0,0)
1 row created.
SQL> select * from v115;
NO NAME OLD NEW TOTAL AMT
------- ---------- --------- ------- --------- --------
1 vvv 45 55 0 0
2 kkk 35 46 0 0
3 ggg 25 26 0 0
SQL> declare
2 amt int;
3 cursor c is select * from v115;
4 f v115% rowtype;
5 begin
6 for f in c
7 loop
8 f.total:=f.new-f.old;
9 if((f.total=0)or(f.total<50))then
10 f.amt:=100;
11 else if((f.total=50)or(f.total<100))then
12 f.amt:=f.total*0.75;
13 else if((f.total=100)or(f.total<150))then
14 f.amt:=f.total*1.50;
15 else
16 f.amt:=f.total*2.50;
17 end if;
18 end if;
19 end if;
20 update v115 set total=f.total,amt=f.amt where no=f.no;
21 end loop;
22 end;
23 /
SQL> /
Enter value for itemno: 2
Enter value for stock: 355
Enter value for price: 700
old 1: insert into proc values(&itemno,&stock,&price)
new 1: insert into proc values(2,355,700)
1 row created.
SQL> /
Enter value for itemno: 3
Enter value for stock: 275
Enter value for price: 900
old 1: insert into proc values(&itemno,&stock,&price)
new 1: insert into proc values(3,275,900)
1 row created.
FUNCTIONS:
SQL> /
Enter value for name: kkk
Enter value for rollno: 14
old 1: insert into func values('&name',&rollno)
new 1: insert into func values('kkk',14)
1 row created.
SQL> /
Enter value for name: ggg
Enter value for rollno: 16
old 1: insert into func values('&name',&rollno)
new 1: insert into func values('ggg',16)
1 row created.
NAME ROLLNO
---------- ----------
vvv 12
kkk 14
ggg 16
SQL> /
Enter value for name: kkk
Enter value for dept: eee
old 1: insert into vin values('&name','&dept')
new 1: insert into vin values('kkk','eee')
1 row created.
SQL> /
Enter value for name: ggg
Enter value for dept: cse
old 1: insert into vin values('&name','&dept')
new 1: insert into vin values('ggg','cse')
1 row created.
NAME DEPT
---------- ----------
vvv cse
kkk eee
ggg cse
SQL> /
Enter value for dept: eee
Enter value for count: 1
old 1: insert into vin1 values('&dept',&count)
new 1: insert into vin1 values('eee',2)
DEPT COUNT
------- ----------
cse 2
eee 1
SQL> create trigger vin2 after insert on vin1 for each row
2 begin
3 update vin1 set count=count+1 where dept=:new.dept;
4 end;
5 /
Trigger created.
DEPT COUNT
--------- ---------
cse 2
eee 2
SQL> create trigger www after delete on vin for each row
2 begin
3 update vin1 set count=count-1 where dept=:old.dept;
4 end;
5 /
Trigger created.
DEPT COUNT
-------- ----------
cse 2
eee 0
SQL> edit
Wrote file afiedt.buf
1 create trigger ghh1 before update on vin1 for each row
2 declare
3 n number;
4 begin
5 n:=:new.count;
6 if(n<0)
7 then
8 raise_application_error(-20001,'no should not be negative');
9 end if;
10* end;
SQL> /
Trigger created.