You are on page 1of 25

Sadakathullah Appa College

(Autonomous)
(Reaccredited by NAAC at an ‘A++’ Gradewith a CGPA of 3.56 in the IV cycle &
an ISO 9001:2015 Certified Institution)
Rahmath Nagar, Tirunelveli - 11.

DEPARTMENT OF COMPUTER SCIENCE (UNAIDED)


PRACTICAL RECORD NOTE

Name :

Roll No :

Subject Code :

Subject Name :
Sadakathullah Appa College (Autonomous)
(Reaccredited by NAAC at an ‘A++’ Grade with a CGPA of 3.56 in the IV cycle & an ISO
9001:2015 Certified Institution)
Rahmath Nagar, Tirunelveli - 11.

CERTIFICATE

This is to certify that the bonafied record of the


practical Work done in..............................................................
by … ……………………………….. RegNo: ..................... ….. of
……………………………….. Sadakathullah Appa College,

Rahmath Nagar, Tirunelveli – 627011 during the year 20…. - 20….

Staff In-Charge Head of the Department

Submitted for the ……. Semester practical examination held on …………

Internal Examiner External Examiner


ORACLE
S.NO DATE NAME OF THE CONTENT PAGE SIGN
NO
1. Creating , Modifying and
Dropping tables
2. Creating tables with Referential
and Check Constraints
3. Inserting, Modifying
and Deleting rows
4. Dropping, Disabling, Enabling
Constraints
5. Retrieving rows with operators
in where clause
6. Retrieving rows with character /
string functions
7. Retrieving rows with number and
date function
8. Retrieving row with GROUP BY
clause and HAVING clause
9. Joining tables ( Inner and Outer )
10. Simple PL / SQL program
11. PL / SQL Program with control
structures

12 PL/SQL program with Procedure

13 PL/SQL program with functions


using in and out parameters
ORACLE
1. Creating , Modifying and Dropping tables
Creating Table
SQL> create table Student1(RegNo varchar2(8), Name varchar2(30),
Dept varchar2(15), Year varchar2(6) );

Table created.
Finding the column details of a table created
SQL> desc Student1
Name Null? Type

REGNO VARCHAR2(8)
NAME VARCHAR2(30)
DEPT VARCHAR2(15)
YEAR VARCHAR2(6)

Modifying the Structure of table


SQL> Alter table student1 Add (Mark number(6,2));

Table altered.
SQL> desc student1
Name Null? Type

REGNO VARCHAR2(8)
NAME VARCHAR2(30)
DEPT VARCHAR2(15)
YEAR VARCHAR2(6)
MARK NUMBER(6,2)

SQL> Alter table Student1 Modify ( RegNo varchar2(10) );

Table altered.

SQL> desc student1


Name Null? Type

REGNO VARCHAR2(10)
NAME VARCHAR2(30)
DEPT VARCHAR2(15)
YEAR VARCHAR2(6)
MARK NUMBER(6,2)

Destroying Table
SQL> drop table student1 ;
SQL> desc student1
ERROR:
ORA-04043: object student1 does not exist
2. Creating tables with Referential and Check Constraints
Creating tables with Referential Constraints

SQL> create table student2( RegNo varchar2(8) primary key, Name varchar2(30) );

Table created.

SQL> desc student2


Name Null? Type

REGNO NOT NULL VARCHAR2(8)


NAME VARCHAR2(30)

SQL> insert into student2 values (&RegNo, &Name) ;

Enter value for regno: '18ACS80'


Enter value for name: 'Sankar'

old 1: insert into student2 values (&RegNo, &Name)


new 1: insert into student2 values ('18ACS80', 'Sankar')

1 row created.

SQL> /
Enter value for regno: '18ACS85'
Enter value for name: 'Saleem'

old 1: insert into student2 values (&RegNo, &Name)


new 1: insert into student2 values ('18ACS85', 'Saleem')

1 row created.

SQL> /
Enter value for regno: '18ACS90'
Enter value for name: 'Sheik'

old 1: insert into student2 values (&RegNo, &Name)


new 1: insert into student2 values ('18ACS90', 'Sheik')

1 row created.

SQL> select * from student2;

REGNO NAME

18ACS80 Sankar
18ACS85 Saleem
18ACS90 Sheik
SQL> insert into student2 values (&RegNo, &Name) ;
Enter value for regno: '18ACS85'
Enter value for name: 'Kumar'

old 1: insert into student2 values (&RegNo, &Name)


new 1: insert into student2 values ('18ACS85', 'Kumar')
insert into student2 values ('18ACS85', 'Kumar')
*
ERROR at line 1:
ORA-00001: unique constraint (SCOTT.SYS_C00653) violated

SQL> create table student21 (AdmnNo varchar2(8), RegNo varchar2(8) references Student2,
Major varchar2(10) );

Table created.

SQL> insert into student21 values (&AdmnNo, &RegNo, &Major) ;

Enter value for admnno: '1234'


Enter value for regno: '18ACS85'
Enter value for major: 'Computer'

old 1: insert into student21 values (&AdmnNo, &RegNo, &Major)


new 1: insert into student21 values ('1234', '18ACS85', 'Computer')

1 row created.

SQL> /
Enter value for admnno: '1236'
Enter value for regno: '18ACS80'
Enter value for major: 'Computer'
old 1: insert into student21 values (&AdmnNo, &RegNo, &Major)
new 1: insert into student21 values ('1236', '18ACS80', 'Computer')

1 row created.

SQL> /
Enter value for admnno: '1235'
Enter value for regno: '18ACS82'
Enter value for major: 'Computer'

old 1: insert into student21 values (&AdmnNo, &RegNo, &Major)


new 1: insert into student21 values ('1235', '18ACS82', 'Computer')
insert into student21 values ('1235', '18ACS82', 'Computer')
*
ERROR at line 1:
ORA-02291: integrity constraint (SCOTT.SYS_C00654) violated - parent key not found
SQL> select * from student21 ;

ADMNNO REGNO MAJOR

1234 18ACS85 Computer


1236 18ACS80 Computer

SQL> delete from student2 ;


delete from student2
*
ERROR at line 1:
ORA-02292: integrity constraint (SCOTT.SYS_C00654) violated - child record found

Creating tables with Check Constraints

SQL> create table thirdyear ( RegNo varchar2(8) check ( RegNo like '15%'),
2 Name varchar2(30) check ( Name = upper(name) ),
3 Major varchar2(10) check ( Major IN ('Computer','Maths','Physics' ) ) ) ;

Table created.

SQL> desc thirdyear


Name Null? Type

REGNO VARCHAR2(8)
NAME VARCHAR2(30)
MAJOR VARCHAR2(10)

SQL> insert into thirdyear values (&RegNo, &Name, &Major);


Enter value for regno: '18ACS78'
Enter value for name: 'Sankar'
Enter value for major: 'Computer'

old 1: insert into thirdyear values (&RegNo, &Name, &Major)


new 1: insert into thirdyear values ('18ACS78','Sankar', 'Computer')
insert into thirdyear values ('18ACS78','Sankar', 'Computer')
*
ERROR at line 1:
ORA-02290: check constraint (SCOTT.SYS_C00651) violated
SQL> /
Enter value for regno: '18ACS78'
Enter value for name: 'SANKAR'
Enter value for major: 'Computer'

old 1: insert into thirdyear values (&RegNo, &Name, &Major)


new 1: insert into thirdyear values ('18ACS78','SANKAR','Computer')

1 row created.

SQL> /

Enter value for regno: '19AMA90'


Enter value for name: 'RAJA'
Enter value for major: 'Maths'

old 1: insert into thirdyear values (&RegNo, &Name, &Major)


new 1: insert into thirdyear values ('19AMA90', 'RAJA', 'Maths')
insert into thirdyear values ('19AMA90', 'RAJA', 'Maths')
*
ERROR at line 1:
ORA-02290: check constraint (SCOTT.SYS_C00650) violated

SQL> /
Enter value for regno: '18AHI78'
Enter value for name: 'RAJU'
Enter value for major: 'History'

old 1: insert into thirdyear values (&RegNo, &Name, &Major)


new 1: insert into thirdyear values ('18AHI78', 'RAJU', 'History')
insert into thirdyear values ('18AHI78', 'RAJU', 'History')
*
ERROR at line 1:
ORA-02290: check constraint (SCOTT.SYS_C00652) violated

SQL> select * from thirdyear;

REGNO NAME MAJOR

18ACS78 SANKAR Computer


3. Inserting, Modifying and Deleting rows.
SQL> desc student1
Name Null? Type

REGNO VARCHAR2(10)
NAME VARCHAR2(30)
DEPT VARCHAR2(15)
YEAR VARCHAR2(6)
MARK NUMBER(6,2)

Insertion of data into table

SQL> insert into student1 ( regno, name, dept, year ) values ('18ACS65','Amar','Computer','Third');
1 row created.

SQL> insert into student1 ( regno, name, dept, year ) values('18AMA75', 'Akbar',
'Mathematics', 'Third' );
1 row created.

SQL> insert into student1 values('19ACS80', 'Antony', 'Computer', 'Second' ,78.48);


1 row created.

SQL> insert into student1 values('18ACS78', 'Akbar', 'Computer', 'Third',98.45);


1 row created.

Viewing data in the table ( All rows and All columns )

SQL> select * from student1;

REGNO NAME DEPT YEAR MARK

18ACS65 Amar Computer Third


18AMA75 Akbar Mathematics Third
19ACS80 Antony Computer Second 78.48
18ACS78 Akbar Computer Third 98.45

Viewing data in the table ( All rows and Selected columns )

SQL> select RegNo, Name from Student1;

REGNO NAME

18ACS65 Amar
18AMA75 Akbar
19ACS80 Antony
18ACS78 Akbar
Updating / Modifying the contents of a table

SQL> update student1 set mark = 75.35 where regno = '18AMA75';


1 row updated.

SQL> select * from student1;

REGNO NAME DEPT YEAR MARK

18ACS65 Amar Computer Third


18AMA75 Akbar Mathematics Third 75.35
19ACS80 Antony Computer Second 78.48
18ACS78 Akbar Computer Third 98.45

SQL> update student1 set mark = mark + 1.5;


4 rows updated.

SQL> select * from student1;

REGNO NAME DEPT YEAR MARK


-
18ACS65 Amar Computer Third
18AMA75 Akbar Mathematics Third 76.85
19ACS80 Antony Computer Second 79.98
18ACS78 Akbar Computer Third 99.95

Removal of selected rows

SQL> delete from student1 where dept != 'Computer';


1 row deleted.

SQL> select * from student1;

REGNO NAME DEPT YEAR MARK

18ACS65 Amar Computer Third


19ACS80 Antony Computer Second 79.98
18ACS78 Akbar Computer Third 99.95

Removal of All rows

SQL> delete from student1;

3 rows deleted.

SQL> select * from student1;

no rows selected
4. Dropping, Disabling, Enabling Constraints
SQL> create table student4 ( RegNo varchar2(8) primary key, Name varchar2(30) );

Table created.

SQL> desc student4

Name Null? Type

REGNO NOT NULL VARCHAR2(8)


NAME VARCHAR2(30)

SQL> insert into student4 values (&regno, &name);


Enter value for regno: '19AMA90'
Enter value for name: 'Raj'
old 1: insert into student4 values (&regno, &name)
new 1: insert into student4 values ('19AMA90', 'Raj')

1 row created.

SQL> /
Enter value for regno: '18AMA90'
Enter value for name: 'RAJU'
old 1: insert into student4 values (&regno, &name)
new 1: insert into student4 values ('18AMA90', 'RAJU')
insert into student4 values ('18AMA90', 'RAJU')
*
ERROR at line 1:
ORA-00001: unique constraint (SCOTT.SYS_C00655) violated

SQL> alter table student4 disable primary key;

Table altered.

SQL> desc student4 ;

Name Null? Type

REGNO VARCHAR2(8)
NAME VARCHAR2(30)

SQL> insert into student4 values (&regno, &name);


Enter value for regno: '18AMA90'
Enter value for name: 'RAJU'
old 1: insert into student4 values (&regno, &name)
new 1: insert into student4 values ('18AMA90', 'RAJU')

1 row created.
SQL> select * from student4 ;

REGNO NAME

18AMA90 Raj
18AMA90 RAJU

SQL> alter table student4 enable primary key;


alter table student4 enable primary key
*
ERROR at line 1:
ORA-02437: cannot enable (SCOTT.SYS_C00655) - primary key violated

SQL> delete from student4 where Name = 'RAJU' ;

1 row deleted.

SQL> alter table student4 enable primary key;

Table altered.

SQL> desc student4;

Name Null? Type

REGNO NOT NULL VARCHAR2(8)


NAME VARCHAR2(30)

SQL> alter table student4 drop primary key ;

Table altered.

SQL> desc student4;

Name Null? Type

REGNO VARCHAR2(8)
NAME VARCHAR2(30)

SQL> alter table student4 enable primary key ;


alter table student4 enable primary key
*
ERROR at line 1:
ORA-02432: cannot enable primary key - primary key not defined for table
5. Retrieving rows with operators in where clause
SQL> desc student5

Name Null? Type

REGNO VARCHAR2(8)
NAME VARCHAR2(30)
MARK NUMBER(6,2)

SQL> select * from student5;

REGNO NAME MARK

18AMA70 raj 70.5


18AHI70 raju 60.75
18ACS87 Ravi 98
18ACS78 Rahim 76.75
18ACS92 Raja 85.75

Logical Operators : AND , OR , NOT

SQL> select * from student5 where mark >= 60 and mark < 75 ;

REGNO NAME MARK

18AMA70 raj 70.5


18AHI70 raju 60.75

SQL> select * from student5 where mark < 60 or mark >= 75 ;

REGNO NAME MARK

18ACS87 Ravi 98
18ACS78 Rahim 76.75
18ACS92 Raja 85.75

SQL> select * from student5 where not (mark >= 60 and mark <75 );

REGNO NAME MARK

18ACS87 Ravi 98
18ACS78 Rahim 76.75
18ACS92 Raja 85.75
Range Searching : Between … and , Not Between .. and

SQL> select * from student5 where mark between 60 and 75 ;

REGNO NAME MARK

18AMA70 raj 70.5


18AHI70 raju 60.75

SQL> select * from student5 where mark not between 60 and 75 ;

REGNO NAME MARK

18ACS87 Ravi 98
18ACS78 Rahim 76.75
18ACS92 Raja 85.75

Pattern Matching: Like , In , Not In

SQL> select * from student5 where regno like '%cs%' ;

REGNO NAME MARK

18ACS87 Ravi 98
18ACS78 Rahim 76.75
18ACS92 Raja 85.75

SQL> select * from student5 where regno like '%7_' ;

REGNO NAME MARK

18AMA70 raj 70.5


18AHI70 raju 60.75
18ACS78 Rahim 76.75

SQL> select * from student5 where name in ('Rahim','Raju');

REGNO NAME MARK

18ACS78 Rahim 76.75

SQL> select * from student5 where name not in ('Rahim','Raju');

REGNO NAME MARK

18AMA70 raj 70.5


18AHI70 raju 60.75
18ACS87 Ravi 98
18ACS92 Raja 85.75
6. Retrieving rows with character / string functions

-- Lower, Initcap ,Upper , Substr , Length , Ltrim, Rtrim, Lpad, Rpad, Concat, Replace

SQL> desc student5


Name Null? Type

REGNO VARCHAR2(8)
NAME VARCHAR2(30)
MARK NUMBER(6,2)

SQL> select * from student5;


REGNO NAME MARK

18AMA70 raj 70.5


18AHI70 raju 60.75
18ACS87 Ravi 98
18ACS78 Rahim 76.75
18ACS92 Raja 85.75

SQL> Select lower(Name), upper(name), initcap(name) from student5 ;

LOWER(NAME) UPPER(NAME) INITCAP(NAME)

raj RAJ Raj


raju RAJU Raju
ravi RAVI Ravi
rahim RAHIM Rahim
raja RAJA Raja

SQL> select substr(regno,3,2), length(name), ltrim(name,'ra'), rtrim(name,'jhim') from student5;

SU LENGTH(NAME) LTRIM(NAME,'RA') RTRIM(NAME,'JHIM')

ma 3 j ra
hi 4 ju raju
cs 4 Ravi Rav
cs 5 Rahim Ra
cs 4 Raja Raja

SQL> select lpad(mark,10,'*') "LPAD" , rpad(mark,10,'*') "RPAD" , concat ( regno,name) ,


replace(regno,'cs','zz') “Replace” from student5;
LPAD RPAD CONCAT(REGNO,NAME) Replace

******70.5 70.5****** 18AMA70raj 18AMA70


*****60.75 60.75***** 18AHI70raju 18AHI70
********98 98******** 18ACS87Ravi 18AZZ87
*****76.75 76.75***** 18ACS78Rahim 18AZZ78
*****85.75 85.75***** 18ACS92Raja 18AZZ92
7. Retrieving rows with number and date function
-- Numeric Functions : ABS, SIGN, POWER, MOD, ROUND, TRUNC, SQRT, CEIL, FLOOR
--Date Functions : TO_CHAR, ADD_MONTHS, MONTHS_BETWEEN, LAST_DAY

SQL> create table student7(RegNo varchar2(10), Mark number(6,2), DOB date ) ;


Table created.
SQL> insert into student7 values(&RegNo, &Mark, &DOB) ;
SQL> select * from student7;
REGNO MARK DOB

18ACS85 76.34 27-APR-99


18ACS86 60.56 20-JAN-99
18ACS87 78.96 30-JUN-99
18ACS88 98.34 28-DEC-99

SQL> select abs(mark), sign(mark), power(mark,2), mod(mark,5) from student7 ;


ABS(MARK) SIGN(MARK) POWER(MARK,2) MOD(MARK,5)

76.34 1 5827.7956 1.34


60.56 1 3667.5156 .56
78.96 1 6234.6816 3.96
98.34 1 9670.7556 3.34

SQL> select round(mark,1), trunc(mark,1), ceil(mark), floor(mark) from student7 ;


ROUND(MARK,1) TRUNC(MARK,1) CEIL(MARK) FLOOR(MARK)

76.3 76.3 77 76
60.6 60.5 61 60
79 78.9 79 78
98.3 98.3 99 98

SQL> select to_char(dob, 'Month DD, yyyy' ), to_char( dob, 'Mon DD, yy' ),
to_char(dob, 'dd/mm/yy' ) from student7 ;

TO_CHAR(DOB,'MONTH TO_CHAR(DO TO_CHAR(

April 27, 1999 Apr 27, 91 27/04/99


January 20, 1999 Jan 20, 90 20/01/99
June 30, 1999 Jun 30, 91 30/06/99
December 28, 1998 Dec 28, 90 28/12/98

SQL> select add_months(dob,2), months_between('05-jan-2011' , dob ), last_day(dob) from student7 ;

ADD_MONTH MONTHS_BETWEEN('05-JAN-2021',DOB) LAST_DAY(

27-JUN-99 262.1 30-APR-99


20-MAR-99 265.4 31-JAN-99
31-AUG-99 259.9333 30-JUN-99
28-FEB-99 266.0667 31-DEC-98
8. Retrieving row with GROUP BY clause and HAVING
clause
SQL> desc student8
Name Null? Type
MAJOR VARCHAR2(10)
SEMESTER VARCHAR2(10)
NOOFPAPERS NUMBER(2)

SQL> select * from student8;


MAJOR SEMESTER NOOFPAPERS

Computer first 6
Maths first 6
Physics first 6
Computer second 5
Maths second 6
Physics second 4
6 rows selected.

SQL> select major, sum(noofpapers) , count(noofpapers), avg(noofpapers) from student8


group by major ;

MAJOR SUM(NOOFPAPERS) COUNT(NOOFPAPERS) AVG(NOOFPAPERS)

Computer 11 2 5.5
Maths 12 2 6
Physics 10 2 5

SQL> select major, sum(noofpapers) , count(noofpapers) from student8


group by major having major = 'Computer' ;

MAJOR SUM(NOOFPAPERS) COUNT(NOOFPAPERS)

Computer 11 2

SQL> select semester, count(major), sum(noofpapers) from student8 group by semester;

SEMESTER COUNT(MAJOR) SUM(NOOFPAPERS)

first 3 18
second 3 15

SQL> select semester, count(major), sum(noofpapers) from student8


group by semester having semester = 'second' ;

SEMESTER COUNT(MAJOR) SUM(NOOFPAPERS)

second 3 15
9. Joining tables ( Inner and Outer )
SQL> desc student2

Name Null? Type

REGNO NOT NULL VARCHAR2(8)


NAME VARCHAR2(30)

SQL> select * from student2;

REGNO NAME

18ACS80 Sankar
18ACS85 Saleem
18ACS90 Sheik
18ACS95 Syed

SQL> desc student9


Name Null? Type

REGNO VARCHAR2(8)
MARK NUMBER(6,2)

SQL> select * from student9 ;

REGNO MARK
---------- ---------
18ACS75 79.65
18ACS80 94.25
18ACS85 82.45
18ACS97 81.25

Inner Join ( Equi Joins )

SQL> > select student2.regno, name, student9.regno, mark from student2,student9


where student2.regno = student9.regno ;

REGNO NAME REGNO MARK

18ACS80 Sankar 18ACS80 94.25


18ACS85 Saleem 18ACS85 82.45

SQL> select * from student2 a, student9 b where a.regno = b.regno ;

REGNO NAME REGNO MARK

18ACS80 Sankar 18ACS80 94.25


18ACS85 Saleem 18ACS85 82.45
Natural Join ( Using Cartesian Product )

SQL> select * from student2 a, student9 b;

REGNO NAME REGNO MARK

18ACS80 Sankar 18ACS75 79.65


18ACS85 Saleem 18ACS75 79.65
18ACS90 Sheik 18ACS75 79.65
18ACS95 Syed 18ACS75 79.65
18ACS80 Sankar 18ACS80 94.25
18ACS85 Saleem 18ACS80 94.25
18ACS90 Sheik 18ACS80 94.25
18ACS95 Syed 18ACS80 94.25
18ACS80 Sankar 18ACS85 82.45
18ACS85 Saleem 18ACS85 82.45
18ACS90 Sheik 18ACS85 82.45
18ACS95 Syed 18ACS85 82.45
18ACS80 Sankar 18ACS97 81.25
18ACS85 Saleem 18ACS97 81.25
18ACS90 Sheik 18ACS97 81.25
18ACS95 Syed 18ACS97 81.25

16 rows selected.

Joining Multiple Tables( Non Equi Joins)

SQL> select * from student2 a, student9 b where a.regno != b.regno ;

REGNO NAME REGNO MARK

18ACS80 Sankar 18ACS75 79.65


18ACS85 Saleem 18ACS75 79.65
18ACS90 Sheik 18ACS75 79.65
18ACS95 Syed 18ACS75 79.65
18ACS85 Saleem 18ACS80 94.25
18ACS90 Sheik 18ACS80 94.25
18ACS95 Syed 18ACS80 94.25
18ACS80 Sankar 18ACS85 82.45
18ACS90 Sheik 18ACS85 82.45
18ACS95 Syed 18ACS85 82.45
18ACS80 Sankar 18ACS97 81.25
18ACS85 Saleem 18ACS97 81.25
18ACS90 Sheik 18ACS97 81.25
18ACS95 Syed 18ACS97 81.25

14 rows selected.
Left Outer Join

SQL> select * from student2 a,student9 b where a.regno = b.regno(+) ;

REGNO NAME REGNO MARK

18ACS80 Sankar 18ACS80 94.25


18ACS85 Saleem 18ACS85 82.45
18ACS90 Sheik
18ACS95 Syed

Right Outer Join

SQL> select * from student2 a,student9 b where a.regno(+) = b.regno ;

REGNO NAME REGNO MARK

18ACS75 79.65
18ACS80 Sankar 18ACS80 94.25
18ACS85 Saleem 18ACS85 82.45
18ACS97 81.25

Full Outer Join

SQL> select * from student2 a, student9 b where a.regno = b.regno(+)


union select * from student2 a , student9 b where a.regno(+) = b.regno ;

REGNO NAME REGNO MARK

18ACS80 Sankar 18ACS80 94.25


18ACS85 Saleem 18ACS85 82.45
18ACS90 Sheik
18ACS95 Syed
18ACS75 79.65
18ACS97 81.25

6 rows selected.
10. Simple PL / SQL program.
SQL> get odd10.sql
1 declare
2 i number := 1 ;
3 n number :='&n' ;
4 s varchar2(100);
5 begin
6 dbms_output.put('Odd numbers from 1 to ');
7 dbms_output.put_line(n);
8 while( i <= n )
9 loop
10 if (i mod 2 = 1) then
11 s := s || ' ' || i ;
12 end if;
15 i:=i+1;
14 end loop;
15 dbms_output.put_line(s);
16* end;

SQL > set serveroutput on

SQL> /
Enter value for n: 45

old 3: n number :='&n' ;


new 3: n number :='45' ;

Odd numbers from 1 to 45


1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45

PL/SQL procedure successfully completed.

SQL>
11. PL / SQL Program with control structures
SQL> desc student11;
Name Null? Type
NAME VARCHAR2(20)
REGNO VARCHAR2(8)
MARK1 NUMBER(6,2)
MARK2 NUMBER(6,2)
MARK3 NUMBER(6,2)
TOTAL NUMBER(6,2)
GRADE VARCHAR2(12)

SQL> get p11.sql


1 declare
2 n student11.name%type;
3 rn student11.regno%type;
4 m1 student11.mark1%type;
5 m2 student11.mark2%type;
6 m3 student11.mark3%type;
7 tot student11.total%type;
8 gra student11.grade%type;
9 begin
10 n := '&name' ;
11 rn := '&regno';
12 m1 := '&mark1';
15 m2 := '&mark2';
14 m3 := '&mark3';
15 tot := m1 + m2 + m3 ;
16 if ( m1 < 35 or m2 < 35 or m3 < 35 ) then gra := 'Fail' ;
17 elsif ( tot >= 225 ) then gra := 'Distinction' ;
18 elsif (tot >= 180) then gra := 'First' ;
19 elsif ( tot >=150 ) then gra := 'Second' ;
20 else gra := 'Third' ;
21 end if;
22 insert into student11 values(n,rn,m1,m2,m3,tot,gra);
23* end;

SQL> /

SQL> select * from student11;

NAME REGNO MARK1 MARK2 MARK3 TOTAL GRADE

Ashok 18ACS65 65.5 95.5 85 246 Distinction


Ameen 18ACS66 60 70 40 170 Second
Azad 18ACS67 30 90 98 218 Fail
Amar 18ACS68 65 70.75 72.25 215 First
Ahamed 18ACS69 45 46 47 158 Third
12. PL/SQL PROGRAM WITH PROCEDURE

SQL> get p12.sql

1. DECLARE
2. a number;
3. PROCEDURE squareNum( x IN OUT number) IS
4. BEGIN
X:=X* X;
5. END;
6. BEGIN
7. a:=23;
8. squareNum(a);
9. dbms_output.put_line(„square of (23):‟||a);
10. END;
/
Square of (23): 529
PL/SQL procedure successfully completed
13. PL/SQL PROGRAM WITH FUNCTION USING IN

AND OUT PARAMETERS

SQL> get p13.sql

1. DECLARE
2. a number;
3. b number;
4. c number;
5. PROCEDURE findMin (x IN number , Y IN number, z OUT number) IS
6. BEGIN
7. IF x < y THEN
8. z:= x;
9. ELSE
10. z:=y;
11. END IF;
12. END;
13. BEGIN
14. a:=23;
15. b:=45;
16. findMin ( a, b,c);
17. dbms_output.put_line(„Minimum of (23,45):‟||c);
18. END;

Minimum of (23, 45): 23


PL/SQL procedure successfully completed.

You might also like