chapter 15 introduction to pl/sql. chapter objectives explain the benefits of using pl/sql blocks...
TRANSCRIPT
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