ORACLE PL/SQL Fundamentals Training Course

Primary tabs

Course Language

This course is delivered in German or English.

Course Code


Duration Duration

21 hours (usually 3 days including breaks)

Requirements Requirements

The course is only suitable for those who have some knowledge of SQL.

Previous experience with an interactive computer system is desirable but not essential.

Overview Overview

This 3 day course gives an introduction to ORACLE PL/SQL, an application development environment that enables the writing of stored procedures, functions and triggers using both SQL and PL/SQL commands.

The course takes the format of a workshop, with a mix of lecture, working examples and practical exercises. Although the content may be customised, at least 2 days are needed to cover the core elements.

Full course notes are provided along with sample database files, example SQL files and free software tools for use in accessing an ORACLE database.

Course Outline Course Outline


  • Aims and Objectives
  • Course Schedule
  • Introductions
  • Pre-requisites
  • Responsibilities

SQL Tools

  • Objectives
  • SQL Developer
  • SQL Developer - Connection
  • Viewing Table Information
  • Using SQL, SQL Developer - Query
  • SQL*Plus Login
  • Direct Connection
  • Using SQL*Plus
  • Ending the Session
  • SQL*Plus Commands
  • SQL*Plus Environment
  • SQL*Plus Prompt
  • Finding Information about Tables
  • Getting Help
  • Using SQL Files
  • iSQL*Plus, Entity Models
  • The ORDERS Tables
  • The FILM Tables
  • Course Tables Handout
  • SQL Statement Syntax
  • SQL*Plus Commands

What is PL/SQL?

  • What is PL/SQL?
  • Why Use PL/SQL?
  • Block Structure
  • Displaying a Message
  • Sample Code
  • Update Example, Style Guide


  • Variables
  • Datatypes
  • Setting Variables
  • Constants
  • Local and Global Variables
  • %Type Variables
  • Substitution Variables
  • Comments with &
  • Verify Option
  • && Variables
  • Define and Undefine

SELECT Statement

  • SELECT Statement
  • Populating Variables
  • %Rowtype Variables
  • CHR Function
  • Self Study
  • PL/SQL Records
  • Example Declarations

Conditional Statement

  • IF Statement
  • SELECT Statement
  • Self Study
  • Case Statement

Trapping Errors

  • Exception
  • Internal Errors
  • Error Code and Message
  • Using No Data Found
  • User Exceptions
  • Raise Application Error
  • Trapping Non-defined Errors
  • Commit and Rollback
  • Self Study
  • Nested Blocks
  • Workshop

Iteration - Looping

  • Loop Statement
  • While Statement
  • For Statement
  • Goto Statement and Labels


  • Cursors
  • Cursor Attributes
  • Explicit Cursors
  • Explicit Cursor Example
  • Declaring the Cursor
  • Declaring the Variable
  • Open, Fetching the First Row
  • Fetching the Next Row
  • Exit When %Notfound
  • Close
  • For Loop I
  • For Loop II
  • Update Example
  • Commit with Cursors
  • Validation Example I
  • Validation Example II
  • Cursor Parameters,
  • Workshop
  • Workshop Solution

Procedures, Functions and Packages

  • Create Statement
  • Parameters
  • Procedure Body
  • Showing Errors
  • Describe a Procedure
  • Calling Procedures
  • Calling Procedures in SQL*Plus
  • Using Output Parameters
  • Calling with Output Parameters
  • Creating Functions
  • Example Function
  • Showing Errors
  • Describe a Function
  • Calling Functions
  • Calling Functions in SQL*Plus
  • Modular Programming
  • Example Procedure
  • Calling Functions
  • Calling Functions In An IF Statement
  • Creating Packages
  • Package Example
  • Reasons for Packages
  • Public and Private Sub-programs
  • Showing Errors
  • Describe a Package
  • Calling Packages in SQL*Plus
  • Calling Packages From Sub-Programs
  • Dropping a Sub-Program
  • Finding Sub-programs
  • Creating a Debug Package
  • Calling the Debug Package
  • Positional and Named Notation
  • Parameter Default Values
  • Recompiling Procedures and Functions
  • Workshop


  • Creating Triggers
  • Statement Triggers
  • Row Level Triggers
  • WHEN Restriction
  • Selective Triggers - IF
  • Showing Errors
  • Commit in Triggers
  • Restrictions
  • Mutating Triggers
  • Finding Triggers
  • Dropping a Trigger
  • Generating an Auto-number
  • Disabling Triggers
  • Enabling Triggers
  • Trigger Names

Sample Data

  • ORDER Tables
  • FILM Tables
  • EMPLOYEE Tables

Dynamic SQL

  • SQL in PL/SQL
  • Binding
  • Dynamic SQL
  • Native Dynamic SQL
  • DDL and DML
  • DBMS_SQL Package
  • Dynamic SQL - SELECT
  • Dynamic SQL - SELECT Procedure

Using Files

  • Using Text Files
  • UTL_FILE Package
  • Write/Append Example
  • Read Example
  • Trigger Example
  • DBMS_ALERT Packages
  • DBMS_JOB Package


  • %Type Variables
  • Record Variables
  • Collection Types
  • Index-By Tables
  • Setting Values
  • Nonexistent Elements
  • Nested Tables
  • Nested Table Initialisation
  • Using the Constructor
  • Adding to a Nested Table
  • Varrays
  • Varray Initialization
  • Adding Elements to a Varray
  • Multilevel Collections
  • Bulk Bind
  • Bulk Bind Example
  • Transactional Issues

Ref Cursors

  • Cursor Variables
  • Defining REF CURSOR Types
  • Declaring Cursor Variables
  • Constrained and Unconstrained
  • Using Cursor Variables
  • Cursor Variable Examples

Guaranteed to run even with a single delegate!
Public Classroom Public Classroom
Participants from multiple organisations. Topics usually cannot be customised
From 2638EUR
Private Classroom Private Classroom
Participants are from one organisation only. No external participants are allowed. Usually customised to a specific group, course topics are agreed between the client and the trainer.
From 2638EUR
Request quote
Private Remote Private Remote
The instructor and the participants are in two different physical locations and communicate via the Internet
From 2850EUR
Request quote
SelfStudy SelfStudy
Self-study courses allow you to learn at your own pace on your own time. There is no live instructor involved. The participants use recorded video, quizzes and reading at their own convenience.
Price not set yet
Register Interest

The more delegates, the greater the savings per delegate. Table reflects price per delegate and is used for illustration purposes only, actual prices may differ.

Number of Delegates Public Classroom Private Classroom Private Remote
1 2638EUR 2638EUR 2850EUR
2 1694EUR 1669EUR 1775EUR
3 1379EUR 1346EUR 1417EUR
4 1222EUR 1185EUR 1238EUR
Cannot find a suitable date? Choose Your Course Date >>
Too expensive? Suggest your price

Related Categories

Course Discounts

Course Venue Course Date Course Price [Remote/Classroom]
SQL Fundamentals Zürich Thu, 2016-08-18 09:30 1911EUR / 2411EUR
Excel Advanced with VBA Basel Mon, 2016-10-24 09:30 1500EUR / 2150EUR

Upcoming Courses

VenueCourse DateCourse Price [Remote/Classroom]
BaselWed, 2016-06-22 09:302850EUR / 3500EUR
ZürichWed, 2016-07-13 09:302850EUR / 3500EUR
BernTue, 2016-07-26 09:302850EUR / 3500EUR

Some of our clients