Chapter 15 Introduction to PL/SQL. Chapter Objectives Explain the benefits of using PL/SQL blocks...

Preview:

Citation preview

Chapter 15Introduction to PL/SQL

Chapter 15Introduction to PL/SQL

PL/SQLPL/SQL

Procedure Language SQL Advanced 4th generation programming

language

Procedure Language SQL Advanced 4th generation programming

language

Advantages of PL/SQLAdvantages of PL/SQL

Can include error handling and control structures

Can be stored and used by various application programs or users

Allows for tighter security by granting privileges for executing stored procedures rather than directly on database object

Can include error handling and control structures

Can be stored and used by various application programs or users

Allows for tighter security by granting privileges for executing stored procedures rather than directly on database object

Types of BlocksTypes of Blocks

Function Procedure Anonymous block

Function Procedure Anonymous block

FunctionFunction

Named block that is stored on the Oracle9i server

Accepts zero or more input parameters Returns one value

Named block that is stored on the Oracle9i server

Accepts zero or more input parameters Returns one value

ProcedureProcedure

Named block Can process several variables Returns no values Interacts with application program using

IN, OUT, or INOUT parameters

Named block Can process several variables Returns no values Interacts with application program using

IN, OUT, or INOUT parameters

Anonymous BlockAnonymous Block

Not stored since it cannot be referenced by a name

Usually embedded in an application program, stored in a script file, or manually entered when needed

Not stored since it cannot be referenced by a name

Usually embedded in an application program, stored in a script file, or manually entered when needed

Basic Structure of a BlockBasic Structure of a Block

Has three sections:– Declarative– Executable– Exception-handling

Executable section is the only required section; the rest are optional

Has three sections:– Declarative– Executable– Exception-handling

Executable section is the only required section; the rest are optional

Declarative SectionDeclarative Section

Identified by the DECLARE keyword Used to define variables and constants

referenced in the block Forward execution – variable and

constants must be declared before they can be referenced

Identified by the DECLARE keyword Used to define variables and constants

referenced in the block Forward execution – variable and

constants must be declared before they can be referenced

Executable SectionExecutable Section

Identified by the BEGIN keyword Mandatory Can consist of several SQL and/or

PL/SQL statements

Identified by the BEGIN keyword Mandatory Can consist of several SQL and/or

PL/SQL statements

Exception-handling SectionException-handling Section

Identified by the EXCEPTION keyword Used to display messages or identify

other actions to be taken when an error occurs

Addresses errors that occur during a statement’s execution

Identified by the EXCEPTION keyword Used to display messages or identify

other actions to be taken when an error occurs

Addresses errors that occur during a statement’s execution

END KeywordEND Keyword

Used to close a PL/SQL block Always followed by a semicolon

Used to close a PL/SQL block Always followed by a semicolon

Example PL/SQL BlockExample PL/SQL Block

Declaring a VariableDeclaring a Variable

Reserves a temporary storage area in the computer’s memory

Every variable must have:– A name– A datatype

Variables can be initialized

Reserves a temporary storage area in the computer’s memory

Every variable must have:– A name– A datatype

Variables can be initialized

Variable NamesVariable Names

Variable name can consist of up to 30 characters, numbers, or special symbols

Variable name must begin with a character

Variable name can consist of up to 30 characters, numbers, or special symbols

Variable name must begin with a character

ConstantsConstants

Variables that have a value that does not change during the execution of the block

Optional CONSTANT keyword can be used to designate a constant in the block’s declarative section

Variables that have a value that does not change during the execution of the block

Optional CONSTANT keyword can be used to designate a constant in the block’s declarative section

PL/SQL DatatypesPL/SQL Datatypes

Scalar – holds a single value Composite – collection of grouped data

treated as one unit Reference – holds pointers to other

program items Large Object (LOB) – holds location of

large objects

Scalar – holds a single value Composite – collection of grouped data

treated as one unit Reference – holds pointers to other

program items Large Object (LOB) – holds location of

large objects

PL/SQL Scalar DatatypesPL/SQL Scalar Datatypes

Variable InitializationVariable Initialization

Use DEFAULT keyword or (:=) assignment operator

Variable must be initialized if it is assigned a NOT NULL constraint

Use DEFAULT keyword or (:=) assignment operator

Variable must be initialized if it is assigned a NOT NULL constraint

Variable Initialization ExamplesVariable Initialization Examples

SELECT StatementSELECT Statement

Requires use of INTO clause to identify variable assigned to each data elementRequires use of INTO clause to identify variable assigned to each data element

SELECT Statement ExampleSELECT Statement Example

CursorsCursors

Implicit cursor – created for DML operations or a SELECT statement that retrieves only one row of results

Explicit cursor – required for SELECT statements retrieving more than one row of results

Implicit cursor – created for DML operations or a SELECT statement that retrieves only one row of results

Explicit cursor – required for SELECT statements retrieving more than one row of results

Execution ControlExecution Control

IF statement – executes statements based on a condition

Basic loop – executes statements until condition in EXIT clause is TRUE

FOR loop – uses counter WHILE loop – executes statements until

condition is FALSE

IF statement – executes statements based on a condition

Basic loop – executes statements until condition in EXIT clause is TRUE

FOR loop – uses counter WHILE loop – executes statements until

condition is FALSE

IF Statement SyntaxIF Statement Syntax

IF Statement ExampleIF Statement Example

Basic Loop SyntaxBasic Loop Syntax

Basic Loop ExampleBasic Loop Example

FOR Loop SyntaxFOR Loop Syntax

FOR Loop ExampleFOR Loop Example

WHILE Loop SyntaxWHILE Loop Syntax

WHILE Loop ExampleWHILE Loop Example

Nested LoopsNested Loops

Any type of loop can be nested inside another loop

Execution of the inner loop must be completed before control is returned to the outer loop

Any type of loop can be nested inside another loop

Execution of the inner loop must be completed before control is returned to the outer loop

Nested Loop ExampleNested Loop Example

Recommended