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
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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> 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
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')
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
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
PRACTICAL NO. 2
AIM: Create a view to display details of employees working on more than one project.
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
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-------- ----- ------- ---------- -------------------
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
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
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')
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
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
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
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')
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
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> 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
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');
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
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 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
PRACTICAL NO. 9
AIM: Write a procedure for creating view on income tax.
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 /
NAME SALARY HRA DA TAX----------- ----------------- ----------- ----------- ---------------------pradeep 150000 8000 5000 48900rahul 46000 1234 123 4736pradeep 30000 890 120 0
24
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.
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
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