Oracle 12c: PL/SQL Fundamentals

Course Description

In this course, students will learn the foundation for the programming series and the use of database-resident stored program units for Oracle 12c.

Audience Profile

The target audience for this textbook is all Oracle professionals. Among the specific groups for whom this textbook will be helpful are:

  • Application designers and database developers
  • Database administrators
  • Web server administrators

Prerequisites

Oracle Database 12c: SQL Fundamentals

Learning Objectives

Upon successful completion of this course, students will be able to work with Oracle database programming using the PL/SQL programming language. They will learn the syntax, structure and features of the language.

Course Outline

Module 1: Selection & Setup of the Database Interface
Lessons
• Considering Available Tools
• Selecting the Appropriate Tool
• Oracle Net Database Connections
• Oracle PAAS Database Connections
• Setup SQL Developer
• Setup SQL*Plus
• Setup Jdeveloper

Module 2: About Bind & Substitution Variables
Lessons
• Using SQL Developer
• Using SQL*Plus

Module 3: Choosing a Database Programming Language
Lessons
• What is Database Programming?
• PL/SQL Performance Advantages
• Integration with Other Languages

Module 4: PL/SQL
Lessons
• PL/SQL Program Structure
• LANGUAGE SYNTAX RULES
• EMBEDDING SQL
• WRITING READABLE CODE
• GENERATING DATABASE OUTPUT
• SQL*PLUS INPUT OF A PROGRAM BLOCK

Module 5: Declare Section
Lessons
• 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

Module 6: Begin Section
Lessons
• About the Begin Section
• Manipulating Program Data
• Logic Control & Branching
• GOTO
• LOOP
• IF-THEN-ELSE
• CASE

Module 7: Exception Section
Lessons
• ABOUT THE EXCEPTION SECTION
• ISOLATING THE SPECIFIC EXCEPTION
• PRAGMA EXCEPTION_INIT
• SQLCODE &SQLERRM Example
• SQL%ROWCOUNT &SELECT…INTO

Module 8: Beyond the Basics: Explicit Cursors
Lessons
• ABOUT EXPLICIT CURSORS
• EXTENDED CURSOR TECHNIQUES
• FOR UPDATE OF Clause
• WHERE CURRENT OF Clause
• Using FOR…LOOP Cursors

Module 9: Beyond the Basics: Nested Blocks
Lessons

Module 10: Beyond the Basics: Declared Subprograms
Lessons
• USING DECLARED SUBPROGRAMS
• DECLARED PROCEDURE
• DECLARED FUNCTION

Module 11: Introducing Database-Resident Program Units
Lessons
• ABOUT DATABASE—RESIDENT PROGRAMS
• PHYSICAL STORAGE & EXECUTION
• TYPES OF STORED PROGRAM UNITS
• STORED PROGRAM UNIT ADVANTAGES
• MODULAR DESIGN PRINCIPLES

Module 12: Creating Stored Procedures & Functions
Lessons
• 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

Module 13: Executing Stored Procedures & Functions
Lessons
• CALLING PROCEDURES & FUNCTIONS
• UNIT TESTING WITH EXECUTE
• ANONYMOUS BLOCK UNIT TESTING
• SPECIFYING A PARAMETER NOTATION
• SQL WORKSHEET UNIT TESTING
• CALLING FUNCTIONS FROM SQL

Module 14: Maintaining Stored Program Units
Lessons
• RECOMPILING PROGRAMS
• Mass Recompilation Using UTL_RECOMP()
• DROPPING PROCEDURES & FUNCTIONS
• DROP PROCEDURE / FUNCTION
• DATA DICTIONARY METADATA
• Using USER_OBJECTS
• Using USER_SOURCE
• Using USER_ERRORS
• Using USER_OBJECT_SIZE
• Using USER_DEPENDENCIES

Module 15: Managing Dependencies
Lessons
• DEPENDENCY INTERNALS
• TRACKING DEPENDENCIES
• THE DEPENDENCY TRACKING UTILITY
• SQL DEVELOPER DEPENDENCY INFO
• DEPENDENCY STRATEGY CHECKLISTS

Module 16: Creating & Maintaining Packages
Lessons
• ABOUT PACKAGES
• CREATING PACKAGES
• MAINTAINING PACKAGES
• PERFORMANCE CONSIDERATIONS

Module 17: Advanced Package Capabilities
Lessons
• DEFINER & INVOKER RIGHTS
• WHITE LITS & ACCESSIBLE BY
• PERSISTENT GLOBAL OBJECTS
• DEFINING INITIALIZATION LOGIC
• OBJECT ORIENTATION SUPPORT

Module 18: Advanced Cursor Techniques
Lessons
• USING CUSROS VARIABLES
• USING SYS_REFCURSOR
• USING CURSOR EXPRESSIONS

Module 19: Using System-Supplied Package
Lessons
• DBMS_OUTPUT()
• UTL_FILE()
• FOPEN() EXAMPLE

Module 20: Database Trigger Concepts
Lessons
• ABOUT DATABASE TRIGGERS
• DML EVENT TRIGGER SUB—TYPES
• DATABASE TRIGGER SCENARIO
• TRIGGER EXECUTION MECHANISMS
• TRIGGERS WITHIN SQL WORKSHEET

Module 21: Creating Database Triggers
Lessons
• 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 AN APPLICATION

Module 22: Maintaining Database Triggers
Lessons
• CALL SYNTAX
• TRIGGER MAINTENANCE TASKS
• SHOW ERRORS TRIGGER
• DROP TRIGGER
• ALTER TRIGGER
• MULTIPLE TRIGGERS FOR A TABLE
• HANDLING MUTATING TABLE ISSUES

Module 23: Implementing System Event Triggers
Lessons
• WHAT ARE SYSTEM EVENT TRIGGERS?
• DEFININGTHE SCOPE
• AVAILABLE SYSTEM EVENTS
• SYSTEM EVENT ATTRIBUTES