Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
22 views

Chapter-12 Getting Started With PL/SQL: SQL Vs PL/SQL: Limitations of SQL Are

The document discusses getting started with PL/SQL. It covers key differences between SQL and PL/SQL like procedural capabilities and error handling. The main structures of PL/SQL include blocks, variables, and control structures for selection, iteration, and exception handling. Specific constructs covered are IF/THEN statements, numeric FOR loops, WHILE loops, and interacting with databases using SELECT, INSERT, UPDATE, and DELETE statements.

Uploaded by

Archit Garg
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views

Chapter-12 Getting Started With PL/SQL: SQL Vs PL/SQL: Limitations of SQL Are

The document discusses getting started with PL/SQL. It covers key differences between SQL and PL/SQL like procedural capabilities and error handling. The main structures of PL/SQL include blocks, variables, and control structures for selection, iteration, and exception handling. Specific constructs covered are IF/THEN statements, numeric FOR loops, WHILE loops, and interacting with databases using SELECT, INSERT, UPDATE, and DELETE statements.

Uploaded by

Archit Garg
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

www.ncrtsolutions.

in

CHAPTER-12
GETTING STARTED WITH PL/SQL
SQL Vs PL/SQL:

Limitations of SQL are:

• No procedural capabilities .
• Time Consuming Processing or Network traffic.
• No Error Handling Routines/Procedures.

Advantages of PL/SQL are:

• Procedural Capabilities.
• Reduced Network Traffic.
• Error Handling Procedures/Routines.
• Facilitates Sharing.
• Improved Transaction Performance.
• Portable Code.

ANCHORED DECLARTION:

It refers to a declaration where a variable is declared with another variable or a table column used
as its anchor.
PL/SQL use %TYPE declaration attribute for anchoring.

Ex: num1 NUMBER(5);


num2 num1%TYPE;
empsal Emp.Salary%TYPE;

Note: Anchored types are evaluated at compile time.Thus,you need to recompile the change of
underlying type in the anchored variable.

TYPES OF PL/SQL VARIABLES:


• Local Variables.
• Substitution Variables.
• Bind or Host Variables.

PL/SQL BLOCK STRUCTURES:

DECLARE
/* definitions of <constants>
<variables>

BEGIN
<PL/SQL statement here>

[EXCEPTION]
<Exception Handling>

END;

Material Downloaded From http://www.ncrtsolutions.in


www.ncrtsolutions.in

TYPES OF BLOCKS:
• Anonymous Blocks: Blocks without headers.
• Named Blocks: Blocks having headers or labels like procedure,functions,packages or
triggers.

PL/SQL CONTROL STRUCTURES:


• Sequence
• Selection
• Iteration.

SELECTION CONSTRUCT: (Condition Testing or Decision Making Statements)

1. Simple IF:-
Syntax:
IF <condition>THEN
Statement
END IF;

Example:
DECLARE
a number;
BEGIN
a :=&a;
if a>100 THEN
dbms_output.put_line(a);
END IF;

2. IF…THEN…ELSE…END IF:-
Syntax:
IF <condition>THEN
Statement1;
ELSE
Statement2;
END IF;

Example:

DECLARE
a number;
b number;
BEGIN
a :=&a;
b :=&b;
if a>b THEN
dbms_output.put_line(a);
ELSE
dbms_output.put_line(b);
END IF;

Material Downloaded From http://www.ncrtsolutions.in


www.ncrtsolutions.in

3. NESTED IF ….ELSE:-
IF <condition>THEN
Statement1;
ELSIF <condition>
Statement2;
THEN
.
.
.
ELSE
END IF;
Example:

DECLARE
a number;
b number;
c number;
BEGIN
a :=&a;
b :=&b;
c :=&c;
if a>b THEN
if a>c THEN
dbms_output.put_line(a);
ELSE
dbms_output.put_line(c);
END IF;
ELSE
if (b>c) THEN
dbms_output.put_line(b);
ELSE
dbms_output.put_line(c);
END IF;
END IF:

4. ELSIF LADDER:-
Example:

DECLARE
salary number;
BEGIN
salary :=&salary;
if salary >=10000 THEN
dbms_output.put_line(“CLASS I OFFICER”);
ELSIF salary <10000 AND salary>=8000 THEN
dbms_output.put_line(“CLASS II OFFICER”);
ELSIF salary <8000 AND salary>=5000 THEN
dbms_output.put_line(“CLASS III OFFICER”);
ELSE
dbms_output.put_line(“YOU ARE NOT IN JOB”);
END IF;
END IF;

Material Downloaded From http://www.ncrtsolutions.in


www.ncrtsolutions.in

Points to remember for using IF:


• Always match up an IF with an END IF.
• You must put a space between the keywords END and IF.
• The ELSIF keyword does not have an embedded “E”.
• Place a semicolon (;) only after the END IF keywords.

ITERATION CONSTRUCT : (LOOPS)


PL/SQL provides three different types of loops:
• The simple loop.
• The FOR loop.
• The WHILE loop.

A General Loop Structure:


A loop has two parts: the loop boundary and the loop body.
The Simple Loop:
Syntax:
LOOP
<executable statement>
END LOOP;
Example:
DECLARE
n :=0;
LOOP
n:=n+1;
Dbms_output.put_line(n);
END LOOP;

NOTE: Simple loop does not terminate by itself.So EXIT and EXIT WHEN
statements are used with it to terminate the loop.
Ex: DECLARE
count number :=0;
BEGIN
LOOP
count :=count +1;
dbms_output.put_line(‘value of count is’||count);
IF count >=10 THEN
EXIT;
END IF;
END LOOP:
dbms_output.put_line(‘Hi,I m out of the loop’);
END;

Ex: DECLARE
count number :=0;
BEGIN
LOOP
count :=count +1;
dbms_output.put_line(‘value of count is’||count);
EXIT WHEN count>=10 ;
END LOOP:
dbms_output.put_line(‘Hi,I m out of the loop’);
END;

Material Downloaded From http://www.ncrtsolutions.in


www.ncrtsolutions.in

THE NUMERIC FOR LOOP:


The FOR LOOP provided by PL/SQL comes in two forms:
a) Numeric For loop.
b) Cursor For loop.

NUMERIC FOR LOOP:


Syntax:
FOR <loop index> IN [REVERSE] <lowest number>..<highest number>
LOOP
<executable statements>
END LOOP;

Ex:
BEGIN
FOR num IN 1..20
LOOP
n := num*2;
dbms_output.put_line(n);
END LOOP;
END;

Ex:
BEGIN
FOR num IN REVERSE 1..20
LOOP
n := num*2;
dbms_output.put_line(n);
END LOOP;
END;

Characteristics of Numeric For Loop:


a) Loop index is automatically declared.
b) Expressions in range scheme are evaluated only once.
c) Loop index is not modifiable.

THE WHILE LOOP:


Syntax:
WHILE <condition>
LOOP
<executable statement>
END LOOP:
NOTE: WHILE loop tests the condition before executing the loop.

Ex:
DECLARE
n number;
BEGIN
WHILE n<=10
LOOP

Material Downloaded From http://www.ncrtsolutions.in


www.ncrtsolutions.in

n := n+1;
dbms_output.put_line(n);
END LOOP;
END;

Variations of WHILE Loop:

WHILE TRUE
LOOP
<executable statement>
END LOOP;

The Nested Loops:


The nesting of loops or nested loops mean that a loop resides within another loop.
A loop can nest any type of loop.
Ex:
DECLARE
i number :=0;
BEGIN
WHILE i<10
LOOP
i :=i+1;
dbms_output.put_line(i);
END LOOP;
END;

LABELLING LOOPS:
Loops can be labeled to enhance readability.
Syntax:
<<outer loop>>
LOOP
.
.
EXIT WHEN condition;
END LOOP outer loop;

DATABASE INTERACTION IN PL/SQL:

We can use following SQL statements in PL/SQL code.

SELECT,INSERT,UPDATE,DELETE.

SELECT INTO statement:


This statement is used to store the resultant data of SELECT query into PL/SQL variables.
Syntax:
SELECT <select list> INTO <variable_list>
FROM <table>[WHERE <condition>];

The above syntax is used when we want to store some particular fields or columns of SQL into
PL/SQL variables.

Material Downloaded From http://www.ncrtsolutions.in


www.ncrtsolutions.in

But what if we wish to store entire row of data into PL/SQL variable, in that situation the concept
of records is used.

USING RECORDS:

A PL/SQL record is a group of multiple pieces of information,related to one another,called fields.

Types of Records:
a. Table based records.
b. Programmer based records.
c. Cursor based records.

Table based records:


It represents each field in the table. For this anchored declaration %ROWTYPE is used.
Syntax:
<record name> <table name>%ROWTYPE;

Programmer Defined Records:


It is an explicitly defined record in PL/SQL.It is defined with TYPE statement as per the following syntax.
Syntax:
TYPE <typename> IS RECORD (field_declaration[,field declaration]…);

Here,RECORD TYPE declared is treated as a data type,which can not hold values.For which we need to
declare a variable of that type.
Syntax:
Variablename RECORD type;

This variable can now be used to access individual columns or fields.

EXCEPTION HANDLING IN PL/SQL:

EXCEPTIONS are some unwanted or undesired situations,which terminate the PL/SQL script
unexpectedly.

Types Of EXCEPTIONS:
1. Predefined Exceptions.
2. Undefined Exceptions.
3. User-defined Exceptions.

Predefined Exceptions are not needed to be declared and raised while Userdefined Exceptions are to be
declared,raised and handled in EXCEPTION handling section.

***

Material Downloaded From http://www.ncrtsolutions.in

You might also like