DBMS Rest
DBMS Rest
Roll No.: 45
//trig1.sql
SQL> @trig1
8 /
Trigger created.
2. Create a trigger for update of a column sal in table EMP which ensured that salary cannot
reduce.
6 rows selected.
//trig2.sql
SQL> @trig2
8 /
Trigger created.
3. Create a trigger that prints the change in salary every time sal of employee is changed.
//trig3.sql
create or replace trigger print_salary
begin
dbms_output.put(:old.sal);
dbms_output.put(:new.sal);
dbms_output.put(:new.sal - :old.sal);
endprint_salary;
//trig4.sql
create or replace trigger after_ins_emp
when (new.sal>25000)
begin
:new.sal:=2000;
END after_ins_emp;
1 row created.
7 rows selected.
Sameer Sakhare
Roll No.: 45
//pls1.sql
SQL> @pls1;
12 /
Salaries for 15 employees are updated
15 rows selected.
Sameer Sakhare
Roll No.: 45
2. Write PLSQL script to obtain an empno from user. If his salary is less than 900, then delete
15 rows selected.
SQL> @pls2;
7 /
Enter value for empno: 9
old 4: empno:=&empno;
new 4: empno:=9;
Enter value for empno: 9
old 5: delete from emp2 where SAL>20000 and EMPNO='&EMPNO';
new 5: delete from emp2 where SAL>20000 and EMPNO='9';
3. Write PLSQL script to find out the area of circle and area of triangle (1/2*b*h & hero’s formula).
Circle:
SQL> declare
2 rad number;
3 area number;
4 begin
5 rad := &r;
6 area := 3.14 * rad* rad;
7 DBMS_oUTPUT.PUT_LINE('Area of circle is : '||area);
8 end;
9 /
Output:
Enter value for r: 5
old 5: rad := &r;
new 5: rad := 5;
Area of circle is : 78.5
PL/SQL procedure successfully completed.
Traingle:
SQL> declare
2 b number;
3 h number;
4 area number;
5 begin
6 b := &base;
7 h := &hight;
8 area := 0.5 * b* h;
9 DBMS_oUTPUT.PUT_LINE('Area of Triangle is : '||area);
10 end;
11 /
Output:
Enter value for base: 10
old 6: b := &base;
new 6: b := 10;
Enter value for hight: 5
old 7: h := &hight;
new 7: h := 5;
Area of Triangle is : 25
PL/SQL procedure successfully completed.
Sameer Sakhare
Roll No.: 45
Output:
Enter value for a1: 2
old 8: a:=&a1;
new 8: a:=2;
Enter value for b1: 3
old 9: b:=&b1;
new 9: b:=3;
Enter value for c1: 5
old 10: c:=&c1;
new 10: c:=5;
Area of Triangle is : 21.54210992451760747443979300582098494332
PL/SQL procedure successfully completed.
SQL> spool off
Sameer Sakhare
Roll No.: 45
4. Write PLSQL script to find out the percentage & grade of a student . User should be able to input
marks in 5 subjects.
//pls4.sql
DECLARE
m1 Number(2);
m2 Number(2);
m3 Number(2);
m4 Number(2);
m5 Number(2);
total Number(4);
perc Number(2);
grade varchar2(2);
BEGIN
m1:=&Marks1;
m2:=&Marks2;
m3:=&Marks3;
m4:=&Marks4;
m5:=&Marks5;
total:=m1+m2+m3+m4+m5;
perc:=total/5;
IF perc>90
THEN
grade:='A+';
ELSIF perc>80 AND perc<90
THEN
grade:='A';
ELSIF perc>70 AND perc<80
THEN
grade:='B+';
ELSIF perc>60 AND perc<70
THEN
grade:='B';
ELSIF perc>50 AND perc<60
THEN
grade:='C+';
ELSIF perc>35 AND perc<50
THEN
grade:='C';
ELSIF perc<35
THEN
grade:='D';
END IF;
DBMS_OUTPUT.PUT_LINE('Percentage : '||perc);
Sameer Sakhare
Roll No.: 45
DBMS_OUTPUT.PUT_LINE('Grade : '||grade);
END;
SQL> @pls4
43 /
Enter value for marks1: 70
old 11: m1:=&Marks1;
new 11: m1:=70;
Enter value for marks2: 82
old 12: m2:=&Marks2;
new 12: m2:=82;
Enter value for marks3: 75
old 13: m3:=&Marks3;
new 13: m3:=75;
Enter value for marks4: 89
old 14: m4:=&Marks4;
new 14: m4:=89;
Enter value for marks5: 69
old 15: m5:=&Marks5;
new 15: m5:=69;
Percentage : 77
Grade : B+
//pls5.sql
DECLARE
num Number(2);
i Number(2);
res Number(3);
BEGIN
num:=&Number;
DBMS_OUTPUT.PUT_LINE('Tables of '||num||':');
FOR i IN 1..10
LOOP
res:=num*i;
DBMS_OUTPUT.PUT_LINE(num||'*'||i||'='||res);
END LOOP;
END;
SQL> @pls5
15 /
Enter value for number: 6
old 6: num:=&Number;
new 6: num:=6;
Tables of 6:
6*1=6
6*2=12
6*3=18
6*4=24
6*5=30
6*6=36
6*7=42
6*8=48
6*9=54
6*10=60
6. Write PLSQL script to perform mathematical operation on 2 numbers . User should be able to
DECLARE
num1 number(3);
num2 number(3);
num3 number(3);
chvarchar(2);
BEGIN
num1:=&number1;
num2:=&number2;
ch:='&choice';
if(ch='+')
then
num3:=num1+num2;
elsif(ch='-')
then
num3:=num1-num2;
elsif(ch='/')
then
num3:=num1/num2;
elsif(ch='*')
then
num3:=num1*num2;
else
DBMS_OUTPUT.PUT_LINE('Invalid Choice');
END IF;
DBMS_OUTPUT.PUT_LINE('Answer = '||num3);
END;
/
Sameer Sakhare
Roll No.: 45
SQL> @pls6
Enter value for number1: 5
old 10: num1:=&number1;
new 10: num1:=5;
Enter value for number2: 8
old 11: num2:=&number2;
new 11: num2:=8;
Enter value for choice: +
old 12: ch:='&choice';
new 12: ch:='+';
Answer = 13
2 Numbers
DECLARE
b number;
a number;
BEGIN
a:=&a1;
b:=&b1;
if a > b
then
DBMS_oUTPUT.PUT_LINE('Max between two is : '||a);
else
DBMS_oUTPUT.PUT_LINE('Max between two is : '||b);
end if;
end;
/
SQL> @pls7
Enter value for a1: 5
old 5: a:=&a1;
new 5: a:=5;
Enter value for b1: 9
old 6: b:=&b1;
new 6: b:=9;
Max between two is : 9
3 Numbers
DECLARE
b number;
a number;
c number;
BEGIN
a:=&a1;
b:=&b1;
c:=&c1;
if a > b
then
DBMS_OUTPUT.PUT_LINE('Max between three is : ' ||a);
elsif b > c
then
Sameer Sakhare
Roll No.: 45
SQL> @pls8
22 /
Enter value for a1: 21
old 7: a:=&a1;
new 7: a:=21;
Enter value for b1: 66
old 8: b:=&b1;
new 8: b:=66;
Enter value for c1: 55
old 9: c:=&c1;
new 9: c:=55;
Max between three is : 66
8. Write down a PL/SQL code to INSERT, UPDATE, DELETE and QUERY data in tablesof your
database.
7 rows selected.
INSERT
// ins.sql
Declare
DID varchar2(10);
DNAME varchar2(10);
DLOC varchar2(10);
Begin
DID := '&DID';
DNAME := '&DNAME';
DLOC := '&DLOC';
insert into dept2
values (DID,DNAME,DLOC) ;
end;
SQL>@ins
12 /
Enter value for did: 8
old 6: DID := '&DID';
new 6: DID := '8';
Enter value for dname: Finance
old 7: DNAME := '&DNAME';
new 7: DNAME := 'Finance';
Enter value for dloc: Madras
old 8: DLOC := '&DLOC';
new 8: DLOC := 'Madras';
Sameer Sakhare
Roll No.: 45
8 rows selected.
UPDATE
//upd.sql
Declare
DID varchar2(10);
Begin
UPDATE dept2
SET deptno='10'
WHERE dname='Finance';
end;
SQL> @upd
8 /
PL/SQL procedure successfully completed.
8 rows selected.
Sameer Sakhare
Roll No.: 45
DELETE
//del.sql
declare
DID varchar2(10);
begin
DELETE from dept2
WHERE deptno='10';
end;
SQL>@del
7 /
7 rows selected.
Sameer Sakhare
Roll No.: 45
UserLogin: m46
SQL> grant all on employee to m54;
Grant succeeded.
UserLogin: m54
2. To grant all privileges to user m48 on table EMPLOYEE1 with grant option
UserLogin: m54
UserLogin: m39
SQL> select * from m46.employee1;
UserLogin:m54
SQL> select * from m46.employee1;
2 set MGR='2'
3 where EMPNO='102';
1 row updated.
SQL> select * from m46.employee1;
2 where empno='102';
1 row deleted
UserLogin:m46
SQL> revoke all on employee1 from m54;
Revoke succeeded.