36
PRACTICAL NO. 1 AIM : To apply insertion, deletion, modification, database operation and queries on the table. SQL*Plus: Release 9.0.1.0.1 - Production on Thu Sep 10 09:54:38 2009 (c) Copyright 2001 Oracle Corporation. All rights reserved. Connected to: Oracle9i Enterprise Edition Release 9.0.1.1.1 - Production With the Partitioning option JServer Release 9.0.1.1.1 - Production SQL> create table stud 2 (rollno varchar(20) primary key,name varchar(20),age varchar(20)); Table created. SQL> desc stud; Name Null? Type ----------------------------------------- -------- ---------------------- ROLLNO NOT NULL VARCHAR2(20) NAME VARCHAR2(20) AGE VARCHAR2(20) SQL> insert into stud values(&rollno,&name,&age); Enter value for rollno: '1' Enter value for name: 'abc' Enter value for age: '21' old 1: insert into stud values(&rollno,&name,&age) 1

Dbms Practical File

Embed Size (px)

Citation preview

Page 1: Dbms Practical File

PRACTICAL NO. 1

AIM: To apply insertion, deletion, modification, database operation and queries on the table.

SQL*Plus: Release 9.0.1.0.1 - Production on Thu Sep 10 09:54:38 2009

(c) Copyright 2001 Oracle Corporation. All rights reserved.

Connected to:Oracle9i Enterprise Edition Release 9.0.1.1.1 - ProductionWith the Partitioning optionJServer Release 9.0.1.1.1 - Production

SQL> create table stud 2 (rollno varchar(20) primary key,name varchar(20),age varchar(20));

Table created.

SQL> desc stud; Name Null? Type ----------------------------------------- -------- ---------------------- ROLLNO NOT NULL VARCHAR2(20) NAME VARCHAR2(20) AGE VARCHAR2(20)

SQL> insert into stud values(&rollno,&name,&age);Enter value for rollno: '1'Enter value for name: 'abc'Enter value for age: '21'old 1: insert into stud values(&rollno,&name,&age)new 1: insert into stud values('1','abc','21')

1 row created.

SQL> /Enter value for rollno: '2'Enter value for name: 'def'Enter value for age: '22'old 1: insert into stud values(&rollno,&name,&age)new 1: insert into stud values('2','def','22')

1 row created.

1

Page 2: Dbms Practical File

SQL> /Enter value for rollno: '3'Enter value for name: 'ghi'Enter value for age: '23'old 1: insert into stud values(&rollno,&name,&age)new 1: insert into stud values('3','ghi','23')

1 row created.

SQL> select * from stud;

ROLLNO NAME AGE-------------------- -------------------- --------------------1 abc 212 def 223 ghi 23

SQL> select distinct * from stud;

ROLLNO NAME AGE-------------------- -------------------- --------------------1 abc 212 def 223 ghi 23

SQL> update stud set age='24' where rollno=3;

1 row updated.

SQL> select * from stud;

ROLLNO NAME AGE-------------------- -------------------- --------------------1 abc 212 def 223 ghi 24

SQL> select * from stud;

ROLLNO NAME AGE-------------------- -------------------- --------------------1 abc 212 def 223 ghi 24

2

Page 3: Dbms Practical File

SQL> rename stud to student;

Table renamed.

SQL> alter table student add(phn_no varchar(10));

Table altered.

SQL> desc student; Name Null? Type ----------------------------------------- -------- ---------------------- ROLLNO NOT NULL VARCHAR2(20) NAME VARCHAR2(20) AGE VARCHAR2(20) PHN_NO VARCHAR2(10)

SQL> alter table student modify(age varchar(5));

Table altered.

SQL> desc student; Name Null? Type ----------------------------------------- -------- ---------------------- ROLLNO NOT NULL VARCHAR2(20) NAME VARCHAR2(20) AGE VARCHAR2(5) PHN_NO VARCHAR2(10)

SQL> select rollno from student where age<23;

ROLLNO--------------------12

SQL> select name from student where age between 21 and 25;

NAME--------------------abcdefghi

3

Page 4: Dbms Practical File

SQL> select * from student order by name desc;

ROLLNO NAME AGE PHN_NO-------------------- -------------------- ----- ----------3 ghi 242 def 221 abc 21

SQL> select * from student order by name desc;

ROLLNO NAME AGE PHN_NO-------------------- -------------------- ----- ---------3 ghi 242 def 221 abc 21

SQL> delete from student where age =21;

1 row deleted.

SQL> select * from student;

ROLLNO NAME AGE PHN_NO-------------------- -------------------- ----- ---------2 def 223 ghi 24

SQL> drop table student;

Table dropped.

SQL> desc student;ERROR:ORA-04043: object student does not exist

4

Page 5: Dbms Practical File

PRACTICAL NO. 2

AIM: Create a view to display details of employees working on more than one project.

SQL> create table emp1 (empno varchar(15),ename varchar(26),sal varchar(24),no_of_proj varchar(10),proj_name varchar(20),proj_loc varchar(10));Table created.

SQL> desc emp1; Name Null? Type ----------------------------------------- -------- ---------------------- EMPNO VARCHAR2(15) ENAME VARCHAR2(26) SAL VARCHAR2(24) NO_OF_PROJ VARCHAR2(10) PROJ_NAME VARCHAR2(20) PROJ_LOC VARCHAR2(10)

SQL> select * from emp1;no rows selected

SQL> insert into emp1 values(&empno,&ename,&sal,&no_of_proj,&proj_name,&proj_loc);Enter value for empno: '1'Enter value for ename: 'abc'Enter value for sal: 20000Enter value for no_of_proj: 2Enter value for proj_name: 'java'Enter value for proj_loc: 'delhi'old 1: insert into emp1 values(&empno,&ename,&sal,&no_of_proj,&proj_name,&proj_loc)new 1: insert into emp1 values('1','abc',20000,2,'java','delhi')1 row created.

SQL> /Enter value for empno: '2'Enter value for ename: 'def'Enter value for sal: 15000Enter value for no_of_proj: 1Enter value for proj_name: 'C++'Enter value for proj_loc: 'bangalore'old 1: insert into emp1 values(&empno,&ename,&sal,&no_of_proj,&proj_name,&proj_loc)new 1: insert into emp1 values('2','def',15000,1,'C++','bangalore')1 row created.

SQL> /

5

Page 6: Dbms Practical File

Enter value for empno: '3'Enter value for ename: 'ghi'Enter value for sal: 12000Enter value for no_of_proj: 4Enter value for proj_name: 'C'Enter value for proj_loc: 'pune'old 1: insert into emp1 values(&empno,&ename,&sal,&no_of_proj,&proj_name,&proj_loc)new 1: insert into emp1 values('3','ghi',12000,4,'C','pune')1 row created.

SQL> /Enter value for empno: '4'Enter value for ename: 'jkl'Enter value for sal: 17000Enter value for no_of_proj: 3Enter value for proj_name: 'Smalltalk'Enter value for proj_loc: 'noida'old 1: insert into emp1 values(&empno,&ename,&sal,&no_of_proj,&proj_name,&proj_loc)new 1: insert into emp1 values('4','jkl',17000,3,'Smalltalk','noida')1 row created.

SQL> select * from emp1;EMPNO ENAME SAL NO_OF_PROJ PROJ_NAME PROJ_LOC----- ------------ ------- ---------- -------------- ----------1 abc 20000 2 java delhi2 def 15000 1 C++ bangalore3 ghi 12000 4 C pune4 jkl 17000 3 Smalltalk noida

SQL> create view vw as select empno,ename,sal,proj_name,proj_loc from emp1 where no_of_proj>1;View created.

SQL> select * from vw;EMPNO ENAME SAL PROJ_NAME PROJ_LOC-------- ----- ------- ---------- -------------------

1 abc 20000 java delhi3 ghi 12000 C pune4 jkl 17000 Smalltalk noida

6

Page 7: Dbms Practical File

PRACTICAL NO. 3

AIM: Create a view to display details of employees not working on any project.

SQL> create table emp1 (empno varchar(15),ename varchar(26),sal varchar(24),no_of_proj varchar(10),proj_name varchar(20),proj_loc varchar(10));

Table created.

SQL> desc emp1; Name Null? Type ----------------------------------------- -------- ---------------------- EMPNO VARCHAR2(15) ENAME VARCHAR2(26) SAL VARCHAR2(24) NO_OF_PROJ VARCHAR2(10) PROJ_NAME VARCHAR2(20) PROJ_LOC VARCHAR2(10)

SQL> select * from emp1;

no rows selected

SQL> insert into emp1 values(&empno,&ename,&sal,&no_of_proj,&proj_name,&proj_loc);Enter value for empno: '1'Enter value for ename: 'abc'Enter value for sal: 20000Enter value for no_of_proj: 2Enter value for proj_name: 'java'Enter value for proj_loc: 'delhi'old 1: insert into emp1 values(&empno,&ename,&sal,&no_of_proj,&proj_name,&proj_loc)new 1: insert into emp1 values('1','abc',20000,2,'java','delhi')

1 row created.

SQL> /Enter value for empno: '2'Enter value for ename: 'def'Enter value for sal: 15000Enter value for no_of_proj: 1Enter value for proj_name: 'C++'Enter value for proj_loc: 'bangalore'old 1: insert into emp1 values(&empno,&ename,&sal,&no_of_proj,&proj_name,&proj_loc)new 1: insert into emp1 values('2','def',15000,1,'C++','bangalore')

7

Page 8: Dbms Practical File

1 row created.

SQL> /Enter value for empno: '3'Enter value for ename: 'ghi'Enter value for sal: 12000Enter value for no_of_proj: 4Enter value for proj_name: 'C'Enter value for proj_loc: 'pune'old 1: insert into emp1 values(&empno,&ename,&sal,&no_of_proj,&proj_name,&proj_loc)new 1: insert into emp1 values('3','ghi',12000,4,'C','pune')

1 row created.

SQL> /Enter value for empno: '4'Enter value for ename: 'jkl'Enter value for sal: 17000Enter value for no_of_proj: 3Enter value for proj_name: 'Smalltalk'Enter value for proj_loc: 'noida'old 1: insert into emp1 values(&empno,&ename,&sal,&no_of_proj,&proj_name,&proj_loc)new 1: insert into emp1 values('4','jkl',17000,3,'Smalltalk','noida')

1 row created.

SQL> insert into emp1 values(&empno,&ename,&sal,&no_of_proj,&proj_name,&proj_loc);Enter value for empno: '5'Enter value for ename: 'mno'Enter value for sal: 19000Enter value for no_of_proj: ‘null’Enter value for proj_name: 'java'Enter value for proj_loc: 'delhi'old 1: insert into emp1 values(&empno,&ename,&sal,&no_of_proj,&proj_name,&proj_loc)new 1: insert into emp1 values('5','mno',19000,null,'java','delhi')

1 row created.

SQL> /Enter value for empno: '6'Enter value for ename: 'pqr'Enter value for sal: 21000Enter value for no_of_proj: ‘null’

8

Page 9: Dbms Practical File

Enter value for proj_name: 'C++'Enter value for proj_loc: 'pune'old 1: insert into emp1 values(&empno,&ename,&sal,&no_of_proj,&proj_name,&proj_loc)new 1: insert into emp1 values('6','pqr',21000,null,'C++','pune')

1 row created.

SQL> select * from emp1;

EMPNO ENAME SAL NO_OF_PROJ PROJ_NAME PROJ_LOC------ ----------- ------- ----------- ----------- ----------

1 abc 20000 2 java delhi2 def 15000 1 C++ bangalore3 ghi 12000 4 C pune4 jkl 17000 3 Smalltalk noida5 mno 19000 null java delhi6 pqr 21000 null C++ pune

6 rows selected.

SQL> create view vw5 as select empno,ename,sal,proj_name,proj_loc from emp1 where no_of_proj='null';

View created.

SQL> select * from vw5;

EMPNO ENAME SAL PROJ_NAME PROJ_LOC

------ -------- ------- ------------ ------------5 mno 19000 java delhi6 pqr 21000 C++ pune

9

Page 10: Dbms Practical File

PRACTICAL NO. 4

AIM: Create a view to display employees name and project name for employees working on projects <p1 and p3> or <p2 and p4>.

SQL>create table company(ssn varchar2(10) primary key,name varchar2(10),age varchar2(10));Table created.

SQL> insert into company values('&ssn','&name','&age');Enter value for ssn: 11Enter value for name:smithEnter value for age: 19old 1: insert into company values('&ssn','&name','&age')new 1: insert into company values('11','smith','19')1 row created.

SQL> /Enter value for ssn: 17Enter value for name: johnEnter value for age: 19old 1: insert into company values('&ssn','&name','&age')new 1: insert into company values('17','john','19')

1 row created

SQL> /Enter value for ssn: 19Enter value for name:jamesEnter value for age: 25old 1: insert into company values('&ssn','&name','&age')new 1: insert into company values('19','james','25')

1 row created.

SQL> /Enter value for ssn: 23Enter value for name:jackEnter value for age: 22old 1: insert into company values('&ssn','&name','&age')new 1: insert into company values('23','jack','22')

1 row created.

10

Page 11: Dbms Practical File

SQL> /Enter value for ssn: 29Enter value for name:tomEnter value for age: 20old 1: insert into company values('&ssn','&name','&age')new 1: insert into company values('29','tom','20')

1 row created.

SQL> /Enter value for ssn: 87Enter value for name:danielEnter value for age: 47old 1: insert into company values('&ssn','&name','&age')new 1: insert into company values('87','sagita','80')

1 row created.

SQL> /Enter value for ssn:91Enter value for name:michaelEnter value for age:42old 1: insert into company values('&ssn','&name','&age')new 1: insert into company values('91','michael','91')

1 row created.

SQL> select * from company;SSN NAME AGE---------- ---------- ----------11 smith 1917 john 1919 james 2523 jack 2229 tom 2087 daniel 4791 michael 42

7 rows selected.

SQL>create table project(ssn varchar2(10) references company,project_no varchar2(10),project_name varchar2(10));

Table created.

11

Page 12: Dbms Practical File

SQL> insert into project values('&ssn','&project_no','&project_name');Enter value for ssn: 11Enter value for project_no: 1Enter value for project_name: securityold 1: insert into project values('&ssn','&project_no','&project_name')new 1: insert into project values('11','1','security')

1 row created.

SQL> /Enter value for ssn: 29Enter value for project_no: 2Enter value for project_name: programmingold 1: insert into project values('&ssn','&project_no','&project_name')new 1: insert into project values('29','2','programming')

1 row created.

SQL> /Enter value for ssn: 17Enter value for project_no: 3Enter value for project_name: gamingold 1: insert into project values('&ssn','&project_no','&project_name')new 1: insert into project values('17','3','gaming')

1 row created.

SQL> /Enter value for ssn: 29Enter value for project_no: 4Enter value for project_name: hackingold 1: insert into project values('&ssn','&project_no','&project_name')new 1: insert into project values('29','4','hacking')

1 row created.

SQL> /Enter value for ssn: 19Enter value for project_no: 3Enter value for project_name: gamingold 1: insert into project values('&ssn','&project_no','&project_name')new 1: insert into project values('19','3','gaming')

1 row created.

12

Page 13: Dbms Practical File

SQL> /Enter value for ssn: 29Enter value for project_no: 3Enter value for project_name: gamingold 1: insert into project values('&ssn','&project_no','&project_name')new 1: insert into project values('29','3','gaming')

1 row created.

SQL> /Enter value for ssn: 19Enter value for project_no: 1Enter value for project_name: securityold 1: insert into project values('&ssn','&project_no','&project_name')new 1: insert into project values('19','1','security')

1 row created.

SQL> select * from project;

SSN project_no project_name---------- -------------- -----------------------11 1 security29 2 programming17 3 gaming29 4 hacking19 3 gaming29 3 gaming19 1 security

SQL>create view working1 as select name,project_name from company,project where project_no=(1 AND 2) OR (3 AND 4);

View created.

SQL> select * from working1;

NAME PROJECT_NAME------------ ------------------------James gamingJames securityTom programmingTom hacking

13

Page 14: Dbms Practical File

PRACTICAL NO. 5

AIM: Using two tables create view which shall perform equijoin.

SQL>create table project41(projid varchar2(10) ,projname varchar2(20));

Table created.

SQL> desc project41; Name Null? Type ----------------------------------------- -------- ---------------------- PROJID VARCHAR2(10) PROJNAME VARCHAR2(20)

SQL>create table emp41(empname varchar2(20) ,empid varchar2(10),projectid varchar2(10));

Table created.

SQL> desc emp41; Name Null? Type ----------------------------------------- -------- ----------------------- EMPNAME VARCHAR2(20) EMPID VARCHAR2(10) PROJECTID VARCHAR2(10)

SQL> insert into emp41 values('abc',01,1);

1 row created.

SQL> insert into emp41 values('def',02,2);

1 row created.

SQL> insert into emp41 values('ghi',03,3);

1 row created.

SQL> select * from emp41;

EMPNAME EMPID PROJECTID-------------------- ---------- ----------abc 1 1def 2 2

14

Page 15: Dbms Practical File

ghi 3 3

SQL> insert into project41 values(1,'a');

1 row created.

SQL> insert into project41 values(7,'b');

1 row created.

SQL> insert into project41 values(2,'c');

1 row created.

SQL> select * from project41;

PROJID PROJNAME---------- --------------------1 a7 b2 c

SQL> select emp41.empname,project41.projname,emp41.projectid from project41,emp41 where emp41.projectid=project41.projid;

EMPNAME PROJNAME PROJECTID-------------------- -------------------- ----------abc a 1def c 2

15

Page 16: Dbms Practical File

PRACTICAL NO. 6

AIM: Create trigger for before and after insertion.

Before

SQL> create table students1(name varchar2(20),roll_no varchar2(9) not null primary key,balance varchar2(10));

Table created.

SQL> desc students1; Name Null? Type --------------------------- ---------------------- ---------------------- NAME VARCHAR2(20) ROLL_NO NOT NULL VARCHAR2(9) BALANCE VARCHAR2(10)

SQL> insert into students1 values('pradeep','1207234','156');

1 row created.

SQL> insert into students1 values('pradeep','1207233','250');

1 row created.

SQL> insert into students1 values('rahul','1207239','195');

1 row created.

SQL> insert into students1 values('neeraj','1207215','400');

1 row created.

SQL> insert into students1 values('nitin','1207223','450');

1 row created.

SQL> select * from students1;

NAME ROLL_NO BALANCE-------------------- --------- ----------pradeep 1207234 156pradeep 1207233 250

16

Page 17: Dbms Practical File

rahul 1207239 195neeraj 1207215 400nitin 1207223 450

SQL> create or replace trigger tri before insert or update on students1 for each row 2 begin 3 if :new.balance<=0 then 4 raise_application_error(-20000,'salary can not be less than zero'); 5 end if; 6 end; 7 /

Trigger created.

SQL> insert into students1 values 2 ('rohit','1207938','-256');insert into students1 values *ERROR at line 1:ORA-20000: salary can not be less than zeroORA-06512: at "SCOTT.TRI", line 3ORA-04088: error during execution of trigger 'SCOTT.TRI'

SQL> commit;

Commit complete.

After

SQL> create table students2(name varchar2(9),roll_no varchar2(8) primary key,balance varchar2(3));

Table created.

SQL> desc students2; Name Null? Type --------------------------------------- ---------- ----------------------- NAME VARCHAR2(9) ROLL_NO NOT NULL VARCHAR2(8) BALANCE VARCHAR2(3)

SQL> insert into students2 values('pradeep','1207234','250');

1 row created.

17

Page 18: Dbms Practical File

SQL> insert into students2 values('pradeep','1207233','200');

1 row created.

SQL> insert into students2 values('rahul','1207239','600');

1 row created.

SQL> insert into students2 values('nitin','1207223','600');

1 row created.

SQL> select * from students2;

NAME ROLL_NO BAL--------- -------- ---pradeep 1207234 250pradeep 1207233 200rahul 1207239 600nitin 1207223 600

SQL> create table new_student(name varchar2(9),roll_no varchar2(9),balance varchar2(8),operator varchar2(10));

Table created.

SQL> desc new_student;Name Null? Type----------------------------------------- -------- ----------------------- NAME VARCHAR2(9)ROLL_NO VARCHAR2(9)BALANCE VARCHAR2(8)OPERATOR VARCHAR2(10)

SQL> create or replace trigger tri6 after insert or delete or update on students2 2 for each row 3 declare 4 operator varchar2(10); 5 begin 6 if updating then 7 operator:='update'; 8 end if; 9 if inserting then

18

Page 19: Dbms Practical File

10 operator:='insert'; 11 end if; 12 if deleting then 13 operator:='delete'; 14 end if; 15 insert into new_student values(:old.roll_no,:old.name,:old.balance,operator); 16 end; 17 /

Trigger created.

SQL> update students2 set balance='700' where name='rahul';

1 row updated.

SQL> delete from students2 where roll_no='1207234';

1 row deleted.

SQL> select * from students2;

NAME ROLL_NO BAL--------- -------- ---pradeep 1207233 200rahul 1207239 700nitin 1207223 600

SQL> select * from new_student;

NAME ROLL_NO BALANCE OPERATOR--------- --------- -------- ----------1207239 rahul 600 update1207234 pradeep 250 delete

19

Page 20: Dbms Practical File

PRACTICAL NO. 7

AIM: Write a procedure to give incentive to employees working on project p1.

SQL> create table server1 (name varchar(9),salary varchar(10),HRA varchar(10),DA varchar(18),projid varchar(10),incentive varchar(10));

Table created.

SQL> desc server1;

Name Null? Type----------------------------------- ----------------- ---------------------NAME VARCHAR2(9)SALARY VARCHAR2(10)HRA VARCHAR2(10)DA VARCHAR2(18)PROJID VARCHAR2(10)INCENTIVE VARCHAR2(10)

SQL> edWrote file afiedt.buf

1 create or replace procedure inc(name in varchar, salary in varchar, HRA in varchar, DA in varchar, projid in varchar)

2 is 3 incentive number(10,3); 4 t_salary number(100; 5 begin 6 inc:=2000; 7 if projid=p1 then 8 t_salary:=salary+HRA+DA+inc; 9 incentive:=inc;10 salary:=t_salary;11 else12 t_salary:=salary+HRA+DA;13 incentive:=0;14 salary:=t_salary;15 end if;16 insert into server1 values(name,salary,HRA,DA,projid,incentive);17 end;18 /

Procedure created.

20

Page 21: Dbms Practical File

SQL> execute inc(‘pradeep’,’15000’,’8000’,’5000’,’p1’);

PL/SQL procedure successfully completed.

SQL> execute inc(‘rahul’,’46000’,’1234’,’123’,’p2’);

PL/SQL procedure successfully completed.SQL> execute inc(‘vishal’,’30000’,’890’,’120’,’p3’);

PL/SQL procedure successfully completed.

SQL> select * from server1;

NAME SALARY HRA DA PROJID INCENTIVE----------- ----------- ----------- ----------- ----------- ---------------pradeep 30000 8000 5000 p1 2000rahul 47357 1234 123 p2 0vishal 31010 890 120 p3 0

21

Page 22: Dbms Practical File

PRACTICAL NO. 8

AIM: Write a procedure for computing amount of telephone bill.

SQL> create table telephbill(name varchar(16),ph_no number(10),units number(9),bill number(10,2));

Table created.

SQL> edWrote file afiedt.buf

1 create procedure pr35(name in varchar,ph_no in number,units in number)is 2 unit number(12); 3 bill number(12,2); 4 begin 5 bill:=205; 6 unit:=units-105; 7 if unit>50 and unit<500 then 8 bill:=bill+(unit*0.80); 9 else 10 bill:=bill+(unit*1.20); 11 end if; 12 insert into telephbill values(name,ph_no,units,bill); 13* end;SQL> /

Procedure created.

SQL> exec pr35('sumit',9994372140,270);

PL/SQL procedure successfully completed.

SQL> select * from telephbill;

NAME PH_NO UNITS BILL---------------- ---------- ---------- ----------sumit 9994372140 270 337

22

Page 23: Dbms Practical File

PRACTICAL NO. 9

AIM: Write a procedure for creating view on income tax.

SQL> create table server1(name varchar2(9),salary varchar2(10),HRA varchar2(10),DA varchar2(18),tax number(10));

Table created.

SQL> desc server1; Name Null? Type ----------------------------------------- ---------------- --------------- NAME VARCHAR2(9) SALARY VARCHAR2(10) HRA VARCHAR2(10) DA VARCHAR2(18) TAX NUMBER(10)

SQL> edWrote file afiedt.buf

1 create or replace procedure inc_tax(name in varchar2,salary in varchar2,HRA in varchar2,DA in varchar2) 2 is

3 tax number(10,3);4 t_salary number(10);

5 begin6 t_salary:=salary+HRA+DA;7 if(t_salary<=40000) then8 tax:=0.000;9 end if;10 if(t_salary>40000 and t_salary<=60000) then11 tax:=(10*t_salary)/100;12 end if;13 if(t_salary>60000 and t_salary<=100000) then14 tax:=(20*t_salary)/100;15 end if;16 if(t_salary>100000) then17 tax:=(30*t_salary)/100;18 end if;19 insert into server values(name,salary,HRA,DA,tax);20 end;21 /

23

Page 24: Dbms Practical File

Procedure created.

SQL> execute inc_tax('pradeep','150000','8000','5000');

PL/SQL procedure successfully completed.

SQL> execute inc_tax('rahul','46000','1234','123');

PL/SQL procedure successfully completed.

SQL> execute inc_tax('pradeep','30000','890','120');

PL/SQL procedure successfully completed.

SQL> select * from server1;

NAME SALARY HRA DA TAX----------- ----------------- ----------- ----------- ---------------------pradeep 150000 8000 5000 48900rahul 46000 1234 123 4736pradeep 30000 890 120 0

24

Page 25: Dbms Practical File

PRACTICAL NO. 10

AIM: The hr manager has decided to raise the salary of employees by 15%. Write a pl/sql block to accept the employee no. & update the salary of the employees. Display appropriate message based on the existence of records in the table.

SQL> create table employee(eid number(10),ename varchar(20),esal number(9,2));

Table created.

SQL> desc employee;

Name Null? Type----------------------------------------- ----------------- ---------------EID NUMBER(10)ENAME

VARCHAR2(20)ESAL NUMBER(9,2)

SQL> insert into employee values(1,’aaa’,3000);1 row created.SQL> insert into employee values(2,’bbb’,4000);1 row created.SQL> insert into employee values(3,’ccc’,5000);1 row created.SQL> insert into employee values(4,’ddd’,6000);1 row created.SQL> insert into employee values(5,’eee’,7000);1 row created.

SQL> select * from employee;

EID ENAME ESAL----------------- ----------------- ----------------1 aaa 30002 bbb 40003 ccc 50004 ddd 60005 eee 7000

SQL> set serveroutput on;

25

Page 26: Dbms Practical File

SQL> ed empsal1declare

a number;x number;x:=a*0.15;

begin

update employee set salary=salary*x where empid between 1 and 5;dbms_output.put_line(‘Salary updated’);EXCEPTION

WHEN INVALID_NUMBER THENdbms_output.put_line(‘Updation failed’);

end;

Enter the value for empid: 1Salary updatedPL/SQL procedure successfully completed.

SQL> select * from employee;

EID ENAME ESAL----------------- ----------------- ----------------1 aaa 34502 bbb 40003 ccc 50004 ddd 60005 eee 7000

26

Page 27: Dbms Practical File

PRACTICAL NO. 11

AIM: Create a procedure that debits certain amount from customer account if minimum balance constraint is preserved.

SQL> create table customer(accnum number(10),cname varchar(20),balance number(9,2));

Table created.

SQL> desc customer;

Name Null? Type----------------------------------------- ----------------- ---------------ACCNUM NUMBER(10)CNAME

VARCHAR2(20)BALANCE NUMBER(9,2)

SQL> set serveroutput on;SQL> ed cust

1 create procedure db(accnum in number,cname in varchar,balance in number)2 is3 bal number=1000;4 begin5 bal:=bal-200;6 update customer set balance=bal where balance<1000;7 dbms_output.put_line(‘amount deducted due to minimum balance’);8 end;9 /

Procedure created.

SQL> execute db(‘1’,’aa’,1100);

PL/SQL procedure successfully completed.

SQL> select * from customer;

ACCNUM CNAME BALANCE----------------------- ----------------------- --------------------1 aa 1100

SQL> execute db(‘2’,’bb’,900);

27

Page 28: Dbms Practical File

PL/SQL procedure successfully completed.

SQL> execute db(‘3’,’cc’,500);

PL/SQL procedure successfully completed.

SQL> select * from customer;

ACCNUM CNAME BALANCE----------------------- ----------------------- --------------------1 aa 11002 bb 7003 cc 300

28