Oracle 19c PL/SQL Fundamentals

Gain the Core Skills Required to Setup, Run, and Manage Databases using PL/SQL and Oracle Database Technology

Course Snapshot


Oracle 19c PL/SQL Fundamentals is a three-day, hands-on course that introduces Oracle database programming using the PL/SQL programming language. Throughout the course, students will explore the core syntax, structure, and features of the language. This course will also lay the foundation for the entire Oracle PL/SQL programming series, allowing one to progress from introductory topics to advanced application design and programming and finally onto writing complex high-performance applications.

The course also explores applying the newly learned skills to the development of database applications. Participants will learn how to use database-resident stored program units such as procedures, functions, packages, and database triggers. Students will also learn about the latest features in Oracle 19c.

NOTE: This training is NOT Official Oracle University training. This is independent, adjustable content that aligns with current topics, skills, and tools that participants need to excel in these areas. 

Learning Objectives

Working within a hands-on learning environment, guided by our expert team, attendees will develop a practical approach to Oracle Database Technology. Throughout the course, participants will explore:

Need different skills or topics?  If your team requires different topics or tools, additional skills, or custom approaches, this course may be further adjusted to accommodate.  We offer additional Oracle, database, scripting, administration, programming, security, and other related topics that may be blended with this course for a track that best suits your needs.

Audience & Pre-Requisites

This course is geared for anyone needing to interface with an Oracle database such as end users, business analysts, application developers, and database administrators / DBAs. Attendees should have incoming basic SQL experience, as well as an understanding of databases (required to manipulate it with PL/SQL).

Take Before: Attendees should have skills equivalent to the topics in the course listed below:

Follow-On Courses: We offer an extensive suite of Oracle Database, Development, and Tooling courses for a wide variety of skills, roles, and goals. Please inquire for details and recommendations on the best next steps in your learning journey.

Course Topics / Agenda

Please note that this list of topics is based on our standard course offering, and evolved from typical industry uses and trends. We’ll work with you to tune this course and level of coverage to target the skills you need most. Topics, agenda, and labs are subject to change and may be adjusted during live delivery based on audience interests, skill level, and participation.

Selection & Setup of the Database Interface

  • Considering Available Tools
  • Selecting the Appropriate Tool
  • Oracle Net Database Connections
  • Oracle PAAS Database Connections
  • Setup SQL Developer
  • Setup SQL *Plus
  • Setup JDeveloper
  • About BIND and Substitution Variables
  • Using SQL Developer
  • Using SQL *Plus

Choosing a Database Programming Language

  • What is Database Programming
  • PL/SQL Programming
  • PL/SQL Performance Advantages
  • Integration with Other Languages

PL/SQL Language Essentials

  • PL/SQL Program Structure
  • Language Syntax Rules
  • Embedding SQL
  • Writing Readable Code
  • Generating Readable Code
  • Generating Database Output
  • SQL * Plus Input of Program Block


  • About the Declare Section
  • Declare Primitive Types
  • Declaration Options
  • Not Null
  • Constant
  • Data Dictionary Integration
  • % Type
  • Declare Simple User-Defined Types
  • Type …  Table
  • Type … Record
  • Extended User Defined Types

BEGIN Section

  • About the Begin Section
  • Manipulating Program Data
  • Logic Control & Braching
  • GOTO
  • LOOP
  • CASE


  • About the Exception Section
  • Isolating the Specific Exception
  • Pragma Exception_INIT
  • SQL%ROWCOUNT & Select … Into

Beyond the Basics : Explicit Cursors

  • About Explicit Cursors
  • Extend Cursor Techniques
  • For Update of Clause
  • Where Current of Clause
  • Using for … Loop Cursors

Introduction Database Resident Programming Units

  • About Database – Resident Programs
  • Physical Storage & Execution
  • Types of Stored Program Units
  • Stored Program Unit Advantages
  • Modular Design Principles

Creating Stored Procedures and Functions

  • Stored Procedures & Functions
  • Create Procedure / Create Function
  • Creating Procedures & Functions
  • Raise_Salary() Procedure
  • Salary_Valid() function
  • The Parameter Specification
  • Default Clause
  • System & Object Privileges
  • Using the Development Tools

Executing Stored Procedures and Functions

  • Calling Procedures & Functions
  • Unit Testing with Execute
  • Anonymous Block Unit Testing
  • Specifying a Parameter Notation
  • SQL Worksheet Unit Testing
  • Calling Functions from SQL

Maintaining Stored Programming Units

  • Recompiling Programs
  • Mass Recompilation Using UTL_RECOMP()
  • Dropping Procedures & Functions
  • Drop Procedures & Functions
  • Drop Procedure / Function
  • Data Dictionary Metadata

Managing Dependencies

  • Dependency Internals
  • Tracking Dependencies
  • The Dependency Tracking Utility
  • SQL Developer Dependency Info
  • Dependency Strategy Checklists

Creating & Maintaining

  • About Packages
  • Creating Packages
  • Maintaining Packages
  • Performance Considerations

Advanced Package Capabilities

  • Definer & Invoker Rights
  • White Lists & Accessible By
  • Persistent Global Objects
  • Defining Initialization Logic
  • Object Orientation Support

Advanced Cursor Techniques

  • Using Cursor Variables
  • Using_Cursor Expressions

Using System Supplied Packages

  • UTL_FILE()
  • FOPEN() Example

Database Trigger Concepts

  • About Database Triggers
  • DML Event Trigger Sub-Types
  • Database Trigger Scenario
  • Trigger Exhaustion Mechanisms
  • Trigger within SQL Worksheet

Creating Database Triggers

  • Statement Level Triggers
  • Using Raise Application_Error()
  • Row-Level Triggers
  • Examples of Triggers
  • Employee_Salary_Check Example
  • Employee_Journal Example
  • Budget_Event Example
  • Instead of Triggers
  • Triggers within and Application

Maintaining Database Triggers

  • Call Syntax
  • Trigger Maintenance Tasks
  • Show Errors Trigger
  • Drop Trigger
  • Alter Trigger
  • Multiple Triggers for a Table
  • Handling Mutating Table Issues

Implementing System Event Triggers

  • What are System Event Triggers
  • Defining the Scope
  • Available System Events
  • System Event Attributes

Student Materials & Lab Environment

All course software (limited versions, for course use only), digital courseware files or course notes, labs / data sets and solutions (as applicable) are provided for you in our “easy access / no install required” high-speed remote lab environment. Our tech team works with every student to ensure everyone is set up with working access and ready to go prior to every course start date, ensuring a smooth delivery and great hands-on experience. Please ask for details.

Leave a Reply