SlideShare a Scribd company logo
More Advanced PL/SQL
Programming
Lesson B Objectives
After completing this lesson, you should be able
to:
• Create PL/SQL decision control structures
• Use SQL queries in PL/SQL programs
• Create loops in PL/SQL programs
• Create PL/SQL tables and tables of records
• Use cursors to retrieve database data into
PL/SQL programs
• Use the exception section to handle errors in
PL/SQL programs

2
IF/THEN
•

•

•

Decision control structures
– Alter order in which statements execute
– Based on values of certain variables
Syntax:
IF condition THEN
commands that execute if condition is TRUE;
END IF;
Condition
– Expression evaluates to TRUE or FALSE
– If TRUE commands execute

3
• Question: What two lines do you need to change to make the
program display Today is not Friday when the current
day is different than Friday?
4
• Syntax:

IF/THEN/ELSE

IF condition THEN
commands that execute if condition is TRUE;
ELSE
commands that execute if condition is FALSE;
END IF;

• Evaluates ELSE command if condition FALSE

Nested IF/THEN/ELSE
• Placing one or more IF/THEN/ELSE statements
within program statements that execute after IF or
ELSE command
• Important to properly indent program lines

5
IF/THEN/ELSE
Nested IF/THEN/ELSE
IF/ELSIF

8
Logical Operators AND, OR, and NOT
• Create complex expressions for decision control structure
condition
• AND: Expressions on both sides of operator must be true
for combined expression to be TRUE
• OR: Expressions on either side of operator must be true
for combined expression to be TRUE
• Order of evaluation (precedence):
– NOT
– AND
– OR

• Parentheses can be used to override precedence and force the
program to evaluate the OR first

9
Using SQL Queries in PL/SQL Programs
• Use SQL action query
– Put query or command in PL/SQL program
– Use same syntax as the syntax used to execute query or
command in SQL*Plus
– Can use variables instead of literal values like ‘Tammy’

• To specify data values

INSERT INTO Student (s_first)
VALUES (curr_first_name);

WHERE s_first = curr_first_name;

10
Changing the values
one by one and
adding them to the
table requires a lot of
coding. What is the
best way of
handling this kind
of repetitive job in
programming?
Loops
• Systematically executes program statements
• Periodically evaluates exit condition to
determine if loop should repeat or exit
• Pretest loop
– Evaluates exit condition before any program
commands execute

• Posttest loop
– Executes program commands before loop
evaluates exit condition for first time

• PL/SQL has 5 types of loop structures:
– LOOP…EXIT
- WHILE…LOOP
– LOOP…EXIT WHEN - Numeric FOR loop
– Cursor FOR loop
12
The LOOP...EXIT Loop
SQL statement
CREATE TABLE count_table
(counter NUMBER(2));

• Pretest or posttest
• Syntax:

Syntax

LOOP
[program statements]
IF condition THEN
EXIT;
END IF;
[additional program
statements]
END LOOP;
The LOOP...EXIT WHEN Loop
Syntax (posttest loop)

LOOP
program statements
EXIT WHEN condition;
END LOOP;
The WHILE...LOOP
Syntax

• WHILE…LOOP is
a Pretest loop

Q: Why the
SELECT * FROM
count_table shows
only counter 6 to 10?

WHILE condition LOOP
program statements
END LOOP;
The Numeric FOR Loop
• Does not require explicit counter increment

Syntax
FOR counter_variable IN start_value .. end_value
LOOP
program statements
END LOOP;
Cursor
• A pointer to memory location on database
server
• Used to:
– Retrieve and manipulate database data in
PL/SQL programs

• Types:
– Implicit cursor
– Explicit cursor
Implicit Cursors
• Context area
– A memory location created by INSERT, UPDATE, DELETE, or
SELECT
– Contains information about query (# rows, etc.)

• Active set
– Set of data rows that query retrieves when a SELECT query
is issued

• Implicit cursor
– A pointer to the context area
– Called so, because you do not need to write code to
explicitly create the cursor or retrieve its values
– Used to assign output of SELECT query to PL/SQL program
variables when query will return only one record*
* Error occurs if query returns no records or more than one record
Implicit Cursors (continued)
• To retrieve data using implicit cursor in
PL/SQL, you add an INTO clause to the SELECT
query
• Syntax:
SELECT field1, field2, ...
INTO variable1, variable2, ...
FROM table1, table2, ...
WHERE join_conditions
AND search_condition_to_retrieve_1_record;

• Variables must be declared in Declaration
section
• Variables must have same data types as fields
• To avoid errors, %TYPE reference data type
should be used
Implicit Cursors (continued)
Explicit Cursors
• Retrieve and display data in PL/SQL programs
for query that might
– Retrieve multiple records
– Return no records at all

• Must explicitly write the code to
–
–
–
–

Declare cursor
Open cursor
Fetch data rows
Close cursor
Explicit Cursors (continued)
• Declare explicit cursor syntax:
– CURSOR cursor_name IS select_query;

• Open explicit cursor syntax:
– OPEN cursor_name;

• Fetch values using LOOP…EXIT WHEN loop:
LOOP
FETCH cursor_name INTO
variable_name(s);
EXIT WHEN cursor_name%NOTFOUND;

• Close cursor syntax:
– CLOSE cursor_name;
Note: When the cursor is declared, system doesn’t check syntax error in the
query. It creates the memory structure to store the active set. The PL/SQL
interpreter checks for error and interprets the query when opening the cursor
Q: At this point, what is the
value for current_bldg_code?
• Using %ROWTYPE variable to display
explicit cursor values

Using a cursor and a single variable to
retrieve multiple fields values
Handling Runtime Errors in PL/SQL
Programs

• Runtime errors

– Occur when an exception (unwanted event) is raised
– Cause program to fail during execution

• Possible causes (exceptions):
– Division by zero
– Constraint violation

- inserting incompatible data
- retrieving 0/several rows with implicit cursor

• Exception handling
– Programmers place commands in EXCEPTION section

• Handle exception options
– Correct error without notifying user of problem
– Inform user of error without taking corrective action

• After exception handler executes
– Program ends

DECLARE
variable declarations
BEGIN
program statements
EXCEPTION
error-handling statements
END;
•

Handling error procedure depends the type of exception:
– Predefined exception
– User-defined exception

- undefined exception
Predefined Exceptions
• Most common errors that occur in programs
• PL/SQL language:
– Assigns exception name
– Provides built-in exception handler for each predefined exception

• System automatically displays error message informing user of
nature of problem
Exception Handler Syntax
• Can create exception handlers to display alternate
error messages
Pl sql
Using the WHEN OTHERS exception
•
•

The SQLERRM built-in function is used to handle other exception
To use the SQLERRM function, you must
– Declare a VARCHAR2 variable
– Assign the declared variable the error’s text and code
Undefined Exceptions
• Less common errors
• Do not have predefined names
• Must explicitly declare exception in program’s
declaration section
• Associate new exception with specific Oracle
error code
• Create exception handler in exception section
– Using same syntax as for predefined exceptions
Example of undefined exception

Loc_id 60 doesn’t exist in LOCATION

• The ORA-02291 exception is not predefined.
• Need to explicitly declare the exception and write a handler
User-defined Exceptions
• Used to handle an exception that
– Does not raise Oracle runtime error
– But requires exception handling to
• Enforce business rules or
• Ensure integrity of database

• Example:
– Internal Northwoods’ rule is “Users can delete
row from the ENROLLMENT table only if s_grade
is NULL”
– Trying to delete a delete an ENROLLMENT row
where the s_grade is not NULL will raise an
exception that needs to be handled
Pl sql
Ad

More Related Content

What's hot (19)

Oracle Baisc Tutorial
Oracle Baisc TutorialOracle Baisc Tutorial
Oracle Baisc Tutorial
bunny0143
 
Ooabap notes with_programs
Ooabap notes with_programsOoabap notes with_programs
Ooabap notes with_programs
Kranthi Kumar
 
Plsql
PlsqlPlsql
Plsql
Mandeep Singh
 
Oracle SQL, PL/SQL best practices
Oracle SQL, PL/SQL best practicesOracle SQL, PL/SQL best practices
Oracle SQL, PL/SQL best practices
Smitha Padmanabhan
 
Cursors
CursorsCursors
Cursors
Isha Aggarwal
 
PL/SQL Complete Tutorial. All Topics Covered
PL/SQL Complete Tutorial. All Topics CoveredPL/SQL Complete Tutorial. All Topics Covered
PL/SQL Complete Tutorial. All Topics Covered
Danish Mehraj
 
Module-4_WTA_PHP Class & Error Handling
Module-4_WTA_PHP Class & Error HandlingModule-4_WTA_PHP Class & Error Handling
Module-4_WTA_PHP Class & Error Handling
SIVAKUMAR V
 
Abap slides set1
Abap slides set1Abap slides set1
Abap slides set1
Milind Patil
 
Project Report on SAP
Project Report on SAPProject Report on SAP
Project Report on SAP
Sudhanshu Singh
 
Pl sql-ch2
Pl sql-ch2Pl sql-ch2
Pl sql-ch2
Mukesh Tekwani
 
Abap course chapter 7 abap objects and bsp
Abap course   chapter 7 abap objects and bspAbap course   chapter 7 abap objects and bsp
Abap course chapter 7 abap objects and bsp
Milind Patil
 
Cursors
CursorsCursors
Cursors
Priyanka Yadav
 
Les14
Les14Les14
Les14
Sudharsan S
 
0106 debugging
0106 debugging0106 debugging
0106 debugging
vkyecc1
 
Abap slide class3
Abap slide class3Abap slide class3
Abap slide class3
Milind Patil
 
Programming in Oracle with PL/SQL
Programming in Oracle with PL/SQLProgramming in Oracle with PL/SQL
Programming in Oracle with PL/SQL
lubna19
 
9781285852744 ppt ch14
9781285852744 ppt ch149781285852744 ppt ch14
9781285852744 ppt ch14
Terry Yoast
 
Open Gurukul Language PL/SQL
Open Gurukul Language PL/SQLOpen Gurukul Language PL/SQL
Open Gurukul Language PL/SQL
Open Gurukul
 
SAP ABAP Latest Interview Questions with Answers by Garuda Trainings
SAP ABAP Latest Interview Questions with Answers by Garuda TrainingsSAP ABAP Latest Interview Questions with Answers by Garuda Trainings
SAP ABAP Latest Interview Questions with Answers by Garuda Trainings
Garuda Trainings
 
Oracle Baisc Tutorial
Oracle Baisc TutorialOracle Baisc Tutorial
Oracle Baisc Tutorial
bunny0143
 
Ooabap notes with_programs
Ooabap notes with_programsOoabap notes with_programs
Ooabap notes with_programs
Kranthi Kumar
 
Oracle SQL, PL/SQL best practices
Oracle SQL, PL/SQL best practicesOracle SQL, PL/SQL best practices
Oracle SQL, PL/SQL best practices
Smitha Padmanabhan
 
PL/SQL Complete Tutorial. All Topics Covered
PL/SQL Complete Tutorial. All Topics CoveredPL/SQL Complete Tutorial. All Topics Covered
PL/SQL Complete Tutorial. All Topics Covered
Danish Mehraj
 
Module-4_WTA_PHP Class & Error Handling
Module-4_WTA_PHP Class & Error HandlingModule-4_WTA_PHP Class & Error Handling
Module-4_WTA_PHP Class & Error Handling
SIVAKUMAR V
 
Abap course chapter 7 abap objects and bsp
Abap course   chapter 7 abap objects and bspAbap course   chapter 7 abap objects and bsp
Abap course chapter 7 abap objects and bsp
Milind Patil
 
0106 debugging
0106 debugging0106 debugging
0106 debugging
vkyecc1
 
Programming in Oracle with PL/SQL
Programming in Oracle with PL/SQLProgramming in Oracle with PL/SQL
Programming in Oracle with PL/SQL
lubna19
 
9781285852744 ppt ch14
9781285852744 ppt ch149781285852744 ppt ch14
9781285852744 ppt ch14
Terry Yoast
 
Open Gurukul Language PL/SQL
Open Gurukul Language PL/SQLOpen Gurukul Language PL/SQL
Open Gurukul Language PL/SQL
Open Gurukul
 
SAP ABAP Latest Interview Questions with Answers by Garuda Trainings
SAP ABAP Latest Interview Questions with Answers by Garuda TrainingsSAP ABAP Latest Interview Questions with Answers by Garuda Trainings
SAP ABAP Latest Interview Questions with Answers by Garuda Trainings
Garuda Trainings
 

Viewers also liked (6)

Plan de negocios tonic life.
Plan de negocios tonic life.Plan de negocios tonic life.
Plan de negocios tonic life.
inven2
 
Thermojetics Bebida InstantáNea
Thermojetics Bebida InstantáNeaThermojetics Bebida InstantáNea
Thermojetics Bebida InstantáNea
saludytriunfo
 
Plan de Compensación Tonic Life 2016 México
Plan de Compensación Tonic Life 2016 MéxicoPlan de Compensación Tonic Life 2016 México
Plan de Compensación Tonic Life 2016 México
Alfonso Castro Flores
 
PERFORMANCE PROTEIN POWDER
PERFORMANCE PROTEIN POWDERPERFORMANCE PROTEIN POWDER
PERFORMANCE PROTEIN POWDER
saludytriunfo
 
Catálogo Tonic Life 2016 - México Versión Enero
Catálogo Tonic Life 2016 - México Versión EneroCatálogo Tonic Life 2016 - México Versión Enero
Catálogo Tonic Life 2016 - México Versión Enero
Alfonso Castro Flores
 
Entorno economico 2015 2016 jjprado. pptx
Entorno economico 2015 2016 jjprado. pptxEntorno economico 2015 2016 jjprado. pptx
Entorno economico 2015 2016 jjprado. pptx
Julio Jose Prado
 
Plan de negocios tonic life.
Plan de negocios tonic life.Plan de negocios tonic life.
Plan de negocios tonic life.
inven2
 
Thermojetics Bebida InstantáNea
Thermojetics Bebida InstantáNeaThermojetics Bebida InstantáNea
Thermojetics Bebida InstantáNea
saludytriunfo
 
Plan de Compensación Tonic Life 2016 México
Plan de Compensación Tonic Life 2016 MéxicoPlan de Compensación Tonic Life 2016 México
Plan de Compensación Tonic Life 2016 México
Alfonso Castro Flores
 
PERFORMANCE PROTEIN POWDER
PERFORMANCE PROTEIN POWDERPERFORMANCE PROTEIN POWDER
PERFORMANCE PROTEIN POWDER
saludytriunfo
 
Catálogo Tonic Life 2016 - México Versión Enero
Catálogo Tonic Life 2016 - México Versión EneroCatálogo Tonic Life 2016 - México Versión Enero
Catálogo Tonic Life 2016 - México Versión Enero
Alfonso Castro Flores
 
Entorno economico 2015 2016 jjprado. pptx
Entorno economico 2015 2016 jjprado. pptxEntorno economico 2015 2016 jjprado. pptx
Entorno economico 2015 2016 jjprado. pptx
Julio Jose Prado
 
Ad

Similar to Pl sql (20)

PL/SQL Fundamentals I
PL/SQL Fundamentals IPL/SQL Fundamentals I
PL/SQL Fundamentals I
Nick Buytaert
 
SQL / PL
SQL / PLSQL / PL
SQL / PL
srijanani2030
 
Mis4200notes8 2
Mis4200notes8 2Mis4200notes8 2
Mis4200notes8 2
Ankit Dubey
 
PL_SQL - II.pptx
PL_SQL - II.pptxPL_SQL - II.pptx
PL_SQL - II.pptx
priyaprakash11
 
PROCEDURAL LANGUAGE/ STRUCTURED QUERY LANGUAGE.pdf
PROCEDURAL LANGUAGE/ STRUCTURED QUERY LANGUAGE.pdfPROCEDURAL LANGUAGE/ STRUCTURED QUERY LANGUAGE.pdf
PROCEDURAL LANGUAGE/ STRUCTURED QUERY LANGUAGE.pdf
rajeswaria21
 
Oracle PL/SQL exception handling
Oracle PL/SQL exception handlingOracle PL/SQL exception handling
Oracle PL/SQL exception handling
Smitha Padmanabhan
 
Plsql guide 2
Plsql guide 2Plsql guide 2
Plsql guide 2
Vinay Kumar
 
4 cursors
4 cursors4 cursors
4 cursors
Babajan Baig
 
Introduction to PLSQL.PPT
Introduction to PLSQL.PPTIntroduction to PLSQL.PPT
Introduction to PLSQL.PPT
SujayaBiju
 
Oracle PL/SQL online training | PL/SQL online Training
Oracle PL/SQL online training | PL/SQL online TrainingOracle PL/SQL online training | PL/SQL online Training
Oracle PL/SQL online training | PL/SQL online Training
suresh
 
4. plsql
4. plsql4. plsql
4. plsql
Amrit Kaur
 
Pl sql-ch1
Pl sql-ch1Pl sql-ch1
Pl sql-ch1
Mukesh Tekwani
 
Oracle forms les15
Oracle forms  les15Oracle forms  les15
Oracle forms les15
Abed Othman
 
Store programs
Store programsStore programs
Store programs
Hitesh Kumar Markam
 
3963066 pl-sql-notes-only
3963066 pl-sql-notes-only3963066 pl-sql-notes-only
3963066 pl-sql-notes-only
Ashwin Kumar
 
Triggers n Cursors.ppt
Triggers n Cursors.pptTriggers n Cursors.ppt
Triggers n Cursors.ppt
VADAPALLYPRAVEENKUMA1
 
PL SQL.pptx in computer language in database
PL SQL.pptx in computer language in databasePL SQL.pptx in computer language in database
PL SQL.pptx in computer language in database
ironman82715
 
Rdbms chapter 1 function
Rdbms chapter 1 functionRdbms chapter 1 function
Rdbms chapter 1 function
dipumaliy
 
pl_sql.ppt
pl_sql.pptpl_sql.ppt
pl_sql.ppt
Prabhat106214
 
PL/SQL Fundamentals I
PL/SQL Fundamentals IPL/SQL Fundamentals I
PL/SQL Fundamentals I
Nick Buytaert
 
PROCEDURAL LANGUAGE/ STRUCTURED QUERY LANGUAGE.pdf
PROCEDURAL LANGUAGE/ STRUCTURED QUERY LANGUAGE.pdfPROCEDURAL LANGUAGE/ STRUCTURED QUERY LANGUAGE.pdf
PROCEDURAL LANGUAGE/ STRUCTURED QUERY LANGUAGE.pdf
rajeswaria21
 
Oracle PL/SQL exception handling
Oracle PL/SQL exception handlingOracle PL/SQL exception handling
Oracle PL/SQL exception handling
Smitha Padmanabhan
 
Introduction to PLSQL.PPT
Introduction to PLSQL.PPTIntroduction to PLSQL.PPT
Introduction to PLSQL.PPT
SujayaBiju
 
Oracle PL/SQL online training | PL/SQL online Training
Oracle PL/SQL online training | PL/SQL online TrainingOracle PL/SQL online training | PL/SQL online Training
Oracle PL/SQL online training | PL/SQL online Training
suresh
 
Oracle forms les15
Oracle forms  les15Oracle forms  les15
Oracle forms les15
Abed Othman
 
3963066 pl-sql-notes-only
3963066 pl-sql-notes-only3963066 pl-sql-notes-only
3963066 pl-sql-notes-only
Ashwin Kumar
 
PL SQL.pptx in computer language in database
PL SQL.pptx in computer language in databasePL SQL.pptx in computer language in database
PL SQL.pptx in computer language in database
ironman82715
 
Rdbms chapter 1 function
Rdbms chapter 1 functionRdbms chapter 1 function
Rdbms chapter 1 function
dipumaliy
 
Ad

More from Hitesh Kumar Markam (18)

Concepts of Distributed Computing & Cloud Computing
Concepts of Distributed Computing & Cloud Computing Concepts of Distributed Computing & Cloud Computing
Concepts of Distributed Computing & Cloud Computing
Hitesh Kumar Markam
 
Data guard
Data guardData guard
Data guard
Hitesh Kumar Markam
 
Tunning overview
Tunning overviewTunning overview
Tunning overview
Hitesh Kumar Markam
 
Resize sga
Resize sgaResize sga
Resize sga
Hitesh Kumar Markam
 
Rman offline backup
Rman offline backupRman offline backup
Rman offline backup
Hitesh Kumar Markam
 
Oracle shutdown
Oracle shutdownOracle shutdown
Oracle shutdown
Hitesh Kumar Markam
 
Log miner in oracle.ppt
Log miner in oracle.pptLog miner in oracle.ppt
Log miner in oracle.ppt
Hitesh Kumar Markam
 
5 backuprecoveryw imp
5 backuprecoveryw imp5 backuprecoveryw imp
5 backuprecoveryw imp
Hitesh Kumar Markam
 
Rmanpres
RmanpresRmanpres
Rmanpres
Hitesh Kumar Markam
 
Oracle archi ppt
Oracle archi pptOracle archi ppt
Oracle archi ppt
Hitesh Kumar Markam
 
Lecture2 oracle ppt
Lecture2 oracle pptLecture2 oracle ppt
Lecture2 oracle ppt
Hitesh Kumar Markam
 
Dbms objective and subjective notes
Dbms objective and subjective notesDbms objective and subjective notes
Dbms objective and subjective notes
Hitesh Kumar Markam
 
Creating database
Creating databaseCreating database
Creating database
Hitesh Kumar Markam
 
1 plsql introduction1
1 plsql introduction11 plsql introduction1
1 plsql introduction1
Hitesh Kumar Markam
 
javascript code for mysql database connection
javascript code for mysql database connectionjavascript code for mysql database connection
javascript code for mysql database connection
Hitesh Kumar Markam
 
Advanced Planning And Optimization
Advanced Planning And OptimizationAdvanced Planning And Optimization
Advanced Planning And Optimization
Hitesh Kumar Markam
 

Recently uploaded (20)

CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - WorksheetCBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
Sritoma Majumder
 
How to Manage Opening & Closing Controls in Odoo 17 POS
How to Manage Opening & Closing Controls in Odoo 17 POSHow to Manage Opening & Closing Controls in Odoo 17 POS
How to Manage Opening & Closing Controls in Odoo 17 POS
Celine George
 
Stein, Hunt, Green letter to Congress April 2025
Stein, Hunt, Green letter to Congress April 2025Stein, Hunt, Green letter to Congress April 2025
Stein, Hunt, Green letter to Congress April 2025
Mebane Rash
 
LDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini UpdatesLDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini Updates
LDM Mia eStudios
 
YSPH VMOC Special Report - Measles Outbreak Southwest US 4-30-2025.pptx
YSPH VMOC Special Report - Measles Outbreak  Southwest US 4-30-2025.pptxYSPH VMOC Special Report - Measles Outbreak  Southwest US 4-30-2025.pptx
YSPH VMOC Special Report - Measles Outbreak Southwest US 4-30-2025.pptx
Yale School of Public Health - The Virtual Medical Operations Center (VMOC)
 
P-glycoprotein pamphlet: iteration 4 of 4 final
P-glycoprotein pamphlet: iteration 4 of 4 finalP-glycoprotein pamphlet: iteration 4 of 4 final
P-glycoprotein pamphlet: iteration 4 of 4 final
bs22n2s
 
Geography Sem II Unit 1C Correlation of Geography with other school subjects
Geography Sem II Unit 1C Correlation of Geography with other school subjectsGeography Sem II Unit 1C Correlation of Geography with other school subjects
Geography Sem II Unit 1C Correlation of Geography with other school subjects
ProfDrShaikhImran
 
Metamorphosis: Life's Transformative Journey
Metamorphosis: Life's Transformative JourneyMetamorphosis: Life's Transformative Journey
Metamorphosis: Life's Transformative Journey
Arshad Shaikh
 
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
larencebapu132
 
SPRING FESTIVITIES - UK AND USA -
SPRING FESTIVITIES - UK AND USA            -SPRING FESTIVITIES - UK AND USA            -
SPRING FESTIVITIES - UK AND USA -
Colégio Santa Teresinha
 
To study Digestive system of insect.pptx
To study Digestive system of insect.pptxTo study Digestive system of insect.pptx
To study Digestive system of insect.pptx
Arshad Shaikh
 
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Celine George
 
How to manage Multiple Warehouses for multiple floors in odoo point of sale
How to manage Multiple Warehouses for multiple floors in odoo point of saleHow to manage Multiple Warehouses for multiple floors in odoo point of sale
How to manage Multiple Warehouses for multiple floors in odoo point of sale
Celine George
 
YSPH VMOC Special Report - Measles Outbreak Southwest US 5-3-2025.pptx
YSPH VMOC Special Report - Measles Outbreak  Southwest US 5-3-2025.pptxYSPH VMOC Special Report - Measles Outbreak  Southwest US 5-3-2025.pptx
YSPH VMOC Special Report - Measles Outbreak Southwest US 5-3-2025.pptx
Yale School of Public Health - The Virtual Medical Operations Center (VMOC)
 
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Library Association of Ireland
 
SCI BIZ TECH QUIZ (OPEN) PRELIMS XTASY 2025.pptx
SCI BIZ TECH QUIZ (OPEN) PRELIMS XTASY 2025.pptxSCI BIZ TECH QUIZ (OPEN) PRELIMS XTASY 2025.pptx
SCI BIZ TECH QUIZ (OPEN) PRELIMS XTASY 2025.pptx
Ronisha Das
 
Presentation of the MIPLM subject matter expert Erdem Kaya
Presentation of the MIPLM subject matter expert Erdem KayaPresentation of the MIPLM subject matter expert Erdem Kaya
Presentation of the MIPLM subject matter expert Erdem Kaya
MIPLM
 
apa-style-referencing-visual-guide-2025.pdf
apa-style-referencing-visual-guide-2025.pdfapa-style-referencing-visual-guide-2025.pdf
apa-style-referencing-visual-guide-2025.pdf
Ishika Ghosh
 
Unit 6_Introduction_Phishing_Password Cracking.pdf
Unit 6_Introduction_Phishing_Password Cracking.pdfUnit 6_Introduction_Phishing_Password Cracking.pdf
Unit 6_Introduction_Phishing_Password Cracking.pdf
KanchanPatil34
 
Handling Multiple Choice Responses: Fortune Effiong.pptx
Handling Multiple Choice Responses: Fortune Effiong.pptxHandling Multiple Choice Responses: Fortune Effiong.pptx
Handling Multiple Choice Responses: Fortune Effiong.pptx
AuthorAIDNationalRes
 
CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - WorksheetCBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
Sritoma Majumder
 
How to Manage Opening & Closing Controls in Odoo 17 POS
How to Manage Opening & Closing Controls in Odoo 17 POSHow to Manage Opening & Closing Controls in Odoo 17 POS
How to Manage Opening & Closing Controls in Odoo 17 POS
Celine George
 
Stein, Hunt, Green letter to Congress April 2025
Stein, Hunt, Green letter to Congress April 2025Stein, Hunt, Green letter to Congress April 2025
Stein, Hunt, Green letter to Congress April 2025
Mebane Rash
 
LDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini UpdatesLDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini Updates
LDM Mia eStudios
 
P-glycoprotein pamphlet: iteration 4 of 4 final
P-glycoprotein pamphlet: iteration 4 of 4 finalP-glycoprotein pamphlet: iteration 4 of 4 final
P-glycoprotein pamphlet: iteration 4 of 4 final
bs22n2s
 
Geography Sem II Unit 1C Correlation of Geography with other school subjects
Geography Sem II Unit 1C Correlation of Geography with other school subjectsGeography Sem II Unit 1C Correlation of Geography with other school subjects
Geography Sem II Unit 1C Correlation of Geography with other school subjects
ProfDrShaikhImran
 
Metamorphosis: Life's Transformative Journey
Metamorphosis: Life's Transformative JourneyMetamorphosis: Life's Transformative Journey
Metamorphosis: Life's Transformative Journey
Arshad Shaikh
 
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
larencebapu132
 
To study Digestive system of insect.pptx
To study Digestive system of insect.pptxTo study Digestive system of insect.pptx
To study Digestive system of insect.pptx
Arshad Shaikh
 
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Celine George
 
How to manage Multiple Warehouses for multiple floors in odoo point of sale
How to manage Multiple Warehouses for multiple floors in odoo point of saleHow to manage Multiple Warehouses for multiple floors in odoo point of sale
How to manage Multiple Warehouses for multiple floors in odoo point of sale
Celine George
 
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Library Association of Ireland
 
SCI BIZ TECH QUIZ (OPEN) PRELIMS XTASY 2025.pptx
SCI BIZ TECH QUIZ (OPEN) PRELIMS XTASY 2025.pptxSCI BIZ TECH QUIZ (OPEN) PRELIMS XTASY 2025.pptx
SCI BIZ TECH QUIZ (OPEN) PRELIMS XTASY 2025.pptx
Ronisha Das
 
Presentation of the MIPLM subject matter expert Erdem Kaya
Presentation of the MIPLM subject matter expert Erdem KayaPresentation of the MIPLM subject matter expert Erdem Kaya
Presentation of the MIPLM subject matter expert Erdem Kaya
MIPLM
 
apa-style-referencing-visual-guide-2025.pdf
apa-style-referencing-visual-guide-2025.pdfapa-style-referencing-visual-guide-2025.pdf
apa-style-referencing-visual-guide-2025.pdf
Ishika Ghosh
 
Unit 6_Introduction_Phishing_Password Cracking.pdf
Unit 6_Introduction_Phishing_Password Cracking.pdfUnit 6_Introduction_Phishing_Password Cracking.pdf
Unit 6_Introduction_Phishing_Password Cracking.pdf
KanchanPatil34
 
Handling Multiple Choice Responses: Fortune Effiong.pptx
Handling Multiple Choice Responses: Fortune Effiong.pptxHandling Multiple Choice Responses: Fortune Effiong.pptx
Handling Multiple Choice Responses: Fortune Effiong.pptx
AuthorAIDNationalRes
 

Pl sql

  • 2. Lesson B Objectives After completing this lesson, you should be able to: • Create PL/SQL decision control structures • Use SQL queries in PL/SQL programs • Create loops in PL/SQL programs • Create PL/SQL tables and tables of records • Use cursors to retrieve database data into PL/SQL programs • Use the exception section to handle errors in PL/SQL programs 2
  • 3. IF/THEN • • • Decision control structures – Alter order in which statements execute – Based on values of certain variables Syntax: IF condition THEN commands that execute if condition is TRUE; END IF; Condition – Expression evaluates to TRUE or FALSE – If TRUE commands execute 3
  • 4. • Question: What two lines do you need to change to make the program display Today is not Friday when the current day is different than Friday? 4
  • 5. • Syntax: IF/THEN/ELSE IF condition THEN commands that execute if condition is TRUE; ELSE commands that execute if condition is FALSE; END IF; • Evaluates ELSE command if condition FALSE Nested IF/THEN/ELSE • Placing one or more IF/THEN/ELSE statements within program statements that execute after IF or ELSE command • Important to properly indent program lines 5
  • 9. Logical Operators AND, OR, and NOT • Create complex expressions for decision control structure condition • AND: Expressions on both sides of operator must be true for combined expression to be TRUE • OR: Expressions on either side of operator must be true for combined expression to be TRUE • Order of evaluation (precedence): – NOT – AND – OR • Parentheses can be used to override precedence and force the program to evaluate the OR first 9
  • 10. Using SQL Queries in PL/SQL Programs • Use SQL action query – Put query or command in PL/SQL program – Use same syntax as the syntax used to execute query or command in SQL*Plus – Can use variables instead of literal values like ‘Tammy’ • To specify data values INSERT INTO Student (s_first) VALUES (curr_first_name); WHERE s_first = curr_first_name; 10
  • 11. Changing the values one by one and adding them to the table requires a lot of coding. What is the best way of handling this kind of repetitive job in programming?
  • 12. Loops • Systematically executes program statements • Periodically evaluates exit condition to determine if loop should repeat or exit • Pretest loop – Evaluates exit condition before any program commands execute • Posttest loop – Executes program commands before loop evaluates exit condition for first time • PL/SQL has 5 types of loop structures: – LOOP…EXIT - WHILE…LOOP – LOOP…EXIT WHEN - Numeric FOR loop – Cursor FOR loop 12
  • 13. The LOOP...EXIT Loop SQL statement CREATE TABLE count_table (counter NUMBER(2)); • Pretest or posttest • Syntax: Syntax LOOP [program statements] IF condition THEN EXIT; END IF; [additional program statements] END LOOP;
  • 14. The LOOP...EXIT WHEN Loop Syntax (posttest loop) LOOP program statements EXIT WHEN condition; END LOOP;
  • 15. The WHILE...LOOP Syntax • WHILE…LOOP is a Pretest loop Q: Why the SELECT * FROM count_table shows only counter 6 to 10? WHILE condition LOOP program statements END LOOP;
  • 16. The Numeric FOR Loop • Does not require explicit counter increment Syntax FOR counter_variable IN start_value .. end_value LOOP program statements END LOOP;
  • 17. Cursor • A pointer to memory location on database server • Used to: – Retrieve and manipulate database data in PL/SQL programs • Types: – Implicit cursor – Explicit cursor
  • 18. Implicit Cursors • Context area – A memory location created by INSERT, UPDATE, DELETE, or SELECT – Contains information about query (# rows, etc.) • Active set – Set of data rows that query retrieves when a SELECT query is issued • Implicit cursor – A pointer to the context area – Called so, because you do not need to write code to explicitly create the cursor or retrieve its values – Used to assign output of SELECT query to PL/SQL program variables when query will return only one record* * Error occurs if query returns no records or more than one record
  • 19. Implicit Cursors (continued) • To retrieve data using implicit cursor in PL/SQL, you add an INTO clause to the SELECT query • Syntax: SELECT field1, field2, ... INTO variable1, variable2, ... FROM table1, table2, ... WHERE join_conditions AND search_condition_to_retrieve_1_record; • Variables must be declared in Declaration section • Variables must have same data types as fields • To avoid errors, %TYPE reference data type should be used
  • 21. Explicit Cursors • Retrieve and display data in PL/SQL programs for query that might – Retrieve multiple records – Return no records at all • Must explicitly write the code to – – – – Declare cursor Open cursor Fetch data rows Close cursor
  • 22. Explicit Cursors (continued) • Declare explicit cursor syntax: – CURSOR cursor_name IS select_query; • Open explicit cursor syntax: – OPEN cursor_name; • Fetch values using LOOP…EXIT WHEN loop: LOOP FETCH cursor_name INTO variable_name(s); EXIT WHEN cursor_name%NOTFOUND; • Close cursor syntax: – CLOSE cursor_name; Note: When the cursor is declared, system doesn’t check syntax error in the query. It creates the memory structure to store the active set. The PL/SQL interpreter checks for error and interprets the query when opening the cursor
  • 23. Q: At this point, what is the value for current_bldg_code?
  • 24. • Using %ROWTYPE variable to display explicit cursor values Using a cursor and a single variable to retrieve multiple fields values
  • 25. Handling Runtime Errors in PL/SQL Programs • Runtime errors – Occur when an exception (unwanted event) is raised – Cause program to fail during execution • Possible causes (exceptions): – Division by zero – Constraint violation - inserting incompatible data - retrieving 0/several rows with implicit cursor • Exception handling – Programmers place commands in EXCEPTION section • Handle exception options – Correct error without notifying user of problem – Inform user of error without taking corrective action • After exception handler executes – Program ends DECLARE variable declarations BEGIN program statements EXCEPTION error-handling statements END;
  • 26. • Handling error procedure depends the type of exception: – Predefined exception – User-defined exception - undefined exception
  • 27. Predefined Exceptions • Most common errors that occur in programs • PL/SQL language: – Assigns exception name – Provides built-in exception handler for each predefined exception • System automatically displays error message informing user of nature of problem
  • 28. Exception Handler Syntax • Can create exception handlers to display alternate error messages
  • 30. Using the WHEN OTHERS exception • • The SQLERRM built-in function is used to handle other exception To use the SQLERRM function, you must – Declare a VARCHAR2 variable – Assign the declared variable the error’s text and code
  • 31. Undefined Exceptions • Less common errors • Do not have predefined names • Must explicitly declare exception in program’s declaration section • Associate new exception with specific Oracle error code • Create exception handler in exception section – Using same syntax as for predefined exceptions
  • 32. Example of undefined exception Loc_id 60 doesn’t exist in LOCATION • The ORA-02291 exception is not predefined. • Need to explicitly declare the exception and write a handler
  • 33. User-defined Exceptions • Used to handle an exception that – Does not raise Oracle runtime error – But requires exception handling to • Enforce business rules or • Ensure integrity of database • Example: – Internal Northwoods’ rule is “Users can delete row from the ENROLLMENT table only if s_grade is NULL” – Trying to delete a delete an ENROLLMENT row where the s_grade is not NULL will raise an exception that needs to be handled