www.oracle.
com/academy
Database Programming with PL/SQL
Overview
This course of study introduces students to PL/SQL, Oracle’s procedural extension language for SQL and the Oracle relational
database. Participants explore the differences between SQL and PL/SQL and explore how PL/SQL is used to extend and automate
SQL in administering the Oracle database. Oracle Application Express (APEX) is utilized to provide practical, hands-on, engaging
activities. Leveraging project-based learning techniques, students will create and work with projects which challenge them to enhance
the SQL of a database solution for a business or organization.
Duration
• Recommended total course time : 180 Hours*
• Professional education credit hours for educators who complete Oracle Academy training: 60
* Total course time includes instruction, self-study/homework, practices, projects and assessment
Target Audiences
Educators
• Technical, vocational or 2- or 4-year college and university faculty members who teach computer science, database
administration , information communications technology (ICT), or a related subject
• Secondary school teachers who teach computer science, ICT, or a related subject
Students
• Students who wish to learn techniques beyond SQL to execute procedural logic on a database
Prerequisites
Required:
• High level knowledge of database design concepts
• High level knowledge of programming with SQL
Suggested
• Oracle Academy Course – Database Design and Programming with SQL
Suggested Next Courses
• Advanced Programming with PL/SQL
• Oracle Application Express Developer
Lesson-by-Lesson Topics
Fundamentals
• Introduction to PL/SQL
• Benefits of PL/SQL
• Creating PL/SQL blocks
Defining Variables and Datatypes
• Using variables in PL/SQL
• Recognizing PL/SQL lexical units
• Recognizing data types
• Using scalar data types
• Writing PL/SQL executable statements
• Nested blocks and variable scope
• Good programming practices
Rev: OA_DB_Prog_PLSQL_06.26.15
Using SQL in PL/SQL
• Review of SQL DML
• Retrieving data in PL/SQL
• Manipulating data in PL/SQL
• Using transaction control statements
Program Structures to Control Execution Flow
• Conditional control: IF statements
• Conditional control: CASE statements
• Iterative control: basic loops
• Iterative control: WHILE and FOR loops
• Iterative control: nested loops
Using Cursors and Parameters
• Introduction to explicit cursors
• Using explicit cursor attributes
• Cursor FOR loops
• Cursors with parameters
• Using cursors for UPDATE
• Using multiple cursors
Using Composite Datatypes
• User-defined records
• Indexing tables of records
Exception Handling
• Handling exceptions
• Trapping Oracle server exceptions
• Trapping user-defined exceptions
• Recognizing the scope of exceptions
Using and Managing Procedures
• Creating procedures
• Using parameters in procedures
• Passing parameters
Using and Managing Functions
• Creating functions
• Using functions in SQL statements
• Review of the data dictionary
• Managing procedures and functions
• Review of object privileges
• Using invoker's rights and autonomous transactions
Using and Managing Packages
• Creating packages
• Managing package concepts
• Advanced package concepts
Getting the Best out of Packages
• Persistent state of package variables
• Using Oracle-supplied packages
Improving PL/SQL Performance
• Using dynamic SQL
• Improving PL/SQL performance
Using and Managing Triggers
• Introduction to triggers
• Creating DML triggers, part I
• Creating DML triggers, part II
• Creating DDL and database event triggers
• Managing triggers
Recognizing and Managing Dependencies
• Introduction to dependencies
• Understanding remote dependencies
Using the PL/SQL Compiler
• Using PL/SQL initialization parameters
• Displaying compiler warning messages
• Using conditional compilation
• Hiding your source code
To search and register for events scheduled in your area, visit the Academy events calendar.
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.