Professional Documents
Culture Documents
CODE:
set serveroutput on
declare
message varchar(20):='Hello,world!';
begin
dbms_output.put_line(message);
end;
/
OUTPUT:
SQL> @msg.sql
Hello,world!
SQL> @calci1.sql
Enter value for opt: '%'
old 6: opt:=&opt;
new 6: opt:='%';
Enter value for a: 8
old 7: a:=&a;
new 7: a:=8;
Enter value for b: 4
old 8: b:=&b;
new 8: b:=4;
2
SQL> @calciswitch.sql
Enter value for opt: '-'
old 6: opt:=&opt;
new 6: opt:='-';
Enter value for a: 7
old 7: a:=&a;
new 7: a:=7;
Enter value for b: 2
old 8: b:=&b;
new 8: b:=2;
5
SQL> @calciswitch.sql
Enter value for opt: '%'
old 6: opt:=&opt;
new 6: opt:='%';
Enter value for a: 9
old 7: a:=&a;
new 7: a:=9;
Enter value for b: 6
old 8: b:=&b;
new 8: b:=6;
1.5
SQL> @calciswitch.sql
Table created.
SQL> insert into emp values('&eno',&bp,&hra,&da,&it,&gp,&np);
Enter value for eno: 1
Enter value for bp: 9000
Enter value for hra: 3500
Enter value for da: 300
Enter value for it: 1500
Enter value for gp: NULL
Enter value for np: NULL
old 1: insert into emp values('&eno',&bp,&hra,&da,&it,&gp,&np)
new 1: insert into emp values('1',9000,3500,300,1500,NULL,NULL)
1 row created.
SQL> /
Enter value for eno: 2
Enter value for bp: 9000.75
Enter value for hra: 3000
Enter value for da: 410
Enter value for it: 1500
Enter value for gp: NULL
Enter value for np: NULL
old 1: insert into emp values('&eno',&bp,&hra,&da,&it,&gp,&np)
new 1: insert into emp values('2',9000.75,3000,410,1500,NULL,NULL)
1 row created.
SQL> /
Enter value for eno: 3
Enter value for bp: 8000
Enter value for hra: 2750
Enter value for da: 220
Enter value for it: 1400
Enter value for gp: NULL
Enter value for np: NULL
old 1: insert into emp values('&eno',&bp,&hra,&da,&it,&gp,&np)
new 1: insert into emp values('3',8000,2750,220,1400,NULL,NULL)
1 row created.
ENO BP HRA DA IT GP NP
---- ---------- ---------- ---------- ---------- ---------- ----------
1 9000 3500 300 1500 12800 11300
2 9000.75 3000 410 1500 12411 10911
3 8000 2750 220 1400
SQL> @emp.sql
Enter value for eno1: 3
old 10: eno1:=&eno1;
new 10: eno1:=3;
gp:10970
np:9570
ENO BP HRA DA IT GP NP
---- ---------- ---------- ---------- ---------- ---------- ----------
1 9000 3500 300 1500 12800 11300
2 9000.75 3000 410 1500 12411 10911
3 8000 2750 220 1400 10970 9570
AIM: CREATE A STUDENT TABLE AND WRITE A PL/SQL PROGRAM TO UPDATE TOTAL & GRADE
USING ROW TYPE
SQL> create table stu(sno varchar(4) primary key,m1 numeric(2),m2 numeric(2),m3 numeric(2),tot
numeric,grade numeric);
Table created.
1 row created.
SQL> /
Enter value for sno: 1202
Enter value for m1: 89
Enter value for m2: 91
Enter value for m3: 77
Enter value for tot: 0
Enter value for grade: 0
old 1: insert into stu values('&sno',&m1,&m2,&m3,&tot,&grade)
new 1: insert into stu values('1202',89,91,77,0,0)
1 row created.
SQL> /
Enter value for sno: 1203
Enter value for m1: 74
Enter value for m2: 81
Enter value for m3: 93
Enter value for tot: 0
Enter value for grade: 0
old 1: insert into stu values('&sno',&m1,&m2,&m3,&tot,&grade)
new 1: insert into stu values('1203',74,81,93,0,0)
1 row created.
SQL> /
Enter value for sno: 1204
Enter value for m1: 76
Enter value for m2: 79
Enter value for m3: 89
Enter value for tot: 0
Enter value for grade: 0
old 1: insert into stu values('&sno',&m1,&m2,&m3,&tot,&grade)
new 1: insert into stu values('1204',76,79,89,0,0)
1 row created.
SQL> select * from stu;
Procedure created.
1 row created.
1 row created.
SQL> /
Enter value for sno: 1207
Enter value for m1: 56
Enter value for m2: 29
Enter value for m3: 74
Enter value for tot: 0
Enter value for grade: 0
1 row created.
1 row created.
CODE:
create or replace procedure stud(id IN stu.sno%type) AS
r stu%rowtype;
begin
select * into r from stu where sno=id;
r.tot:=r.m1+r.m2+r.m3;
update stu set stu.tot=r.tot where sno=id;
if(r.tot>270)then
update stu set stu.grade='10' where sno=id;
elsif(270<r.tot and r.tot>210)then
update stu set stu.grade='9' where sno=id;
elsif(210<r.tot and r.tot>150)then
update stu set stu.grade='8' where sno=id;
elsif(105<r.tot and r.tot>150)then
update stu set stu.grade='6' where sno=id;
else
update stu set stu.grade='5' where sno=id;
end if;
end;
/
OUTPUT:
SQL> @stu1.sql
Procedure created.
7 rows selected.
8 rows selected.
AIM: WRITE A PL/SQL PROGRAM TO IMPLEMENT CALCULATOR USING FUNCTIONS
CODE:
SQL>ed calcifun.sql
set serveroutput on;
create or replace function cal(op IN number,num1 IN number,num2 IN number)
return number as
begin
if op=1 then
return(num1+num2);
elsif op=2 then
return(num1-num2);
elsif op=3 then
return(num1*num2);
else
return(num1/num2);
end if;
end;
/
SQL> ed calcifun1.sql
set serveroutput on
declare
choice number;
a number;
b number;
res number;
begin
choice:=&choice;
a:=&a;
b:=&b;
res:=cal(choice,a,b);
dbms_output.put_line('result:'||res);
end;
/
OUTPUT
SQL> @calcifun.sql
Function created.
SQL> ed calcifun1.sql
SQL> @calcifun1.sql
Enter value for choice: 2
old 7: choice:=&choice;
new 7: choice:=2;
Enter value for a: 23
old 8: a:=&a;
new 8: a:=23;
Enter value for b: 14
old 9: b:=&b;
new 9: b:=14;
result:9
SQL> @trig.sql
Trigger created.
7 rows selected.
AIM: WRITE A PL/SQL PROGRAM TO DISPLAY THE ERROR MESSAGE WHENEVER WE ARE UPDATING
THE MARKS FROM 1 TO 6
CODE:
set serveroutput on
create or replace trigger statmarks
before update of m1
on stu
declare
time number;
begin
time:=extract(hour from systimestamp);
if time between 1 and 6 then
raise_application_error(-20100,'cannot update marks on time from 1 to 6');
end if;
end;
/
OUTPUT
SQL> ed sttrig.sql
SQL> @sttrig.sql
Trigger created.
SQL> update stu set m1=-7 where sno=1202;
update stu set m1=-7 where sno=1202
*
ERROR at line 1:
ORA-20100: cannot update marks on time from 1 to 6
ORA-06512: at "B17.STATMARKS", line 6
ORA-04088: error during execution of trigger 'B17.STATMARKS'
AIM: WRITE A PL/SQL PROGRAM TO INSERT THE RECORD FROM 1 TABLE TO STUDENT TABLE USING
ROW LEVEL TRIGGER
CODE:
set serveroutput on
create or replace trigger p_trig
after insert on st
for each row
when(new.rno>0)
begin
insert into stu values(:new.rno,0,0,0,0,0);
end;
/
OUTPUT
SQL> ed strig.sql
SQL> @strig.sql
Trigger created.
1 row created.
SQL> select *from stu;
8 rows selected.