Oracle Database 12c R2: Advanced PL/SQL

Oracle Database 12c R2: Advanced PL/SQL

Course ID: D80343 3 Days Singapore

Oracle Database 12c R2: Advanced PL/SQL


In the Oracle Database 12c R2: Advanced PL/SQL course, students learn how to use the advanced features of PL/SQL in order to design and tune PL/SQL to interface with the database and integrate with the other applications in the most efficient manner. They learn to write powerful PL/SQL programs using external C/Java routines, fine-grained access packages, cursors, extended interfaces and collections.

Learn To:

  • Apply PL/SQL designing best practices.
  • Create PL/SQL applications that use collections.
  • Work with JSON data in the database.
  • Implement a virtual private database with fine-grained access control.
  • Write code to interface with external C and Java applications.
  • Write code to interface with large objects and use SecureFile LOBs.
  • Write and tune PL/SQL code effectively to maximize performance.

Benefits To You

Students will benefit from using advanced features of program design, packages, cursors, extended interface methods, and collections and students learn how to write powerful PL/SQL programs.

Programming efficiency, use of external C and Java routines, PL/SQL server pages, and fine-grained access are covered. Students learn how to write PL/SQL routines that analyze the PL/SQL applications and caching techniques that can improve performance.

Students are introduced to the Virtual Private Database (VPD) to implement security policies and they learn techniques and tools to strengthen their applications against SQL injection attacks.



  • Application Developers
  • Database Administrators
  • Support Engineer
  • Technical Consultant




Instructor-led / Virtual Instructor-led


  • Basic Knowledge of SQL, PL/SQL
  • Knowledge of PL/SQL Program Units
  • Familiarity with programming languages
  • Oracle Database: SQL Workshop I Ed 2
  • Oracle Database: Develop PL/SQL Program Units Ed 2


  • Design PL/SQL packages and program units that execute efficiently
  • Write code to interface with external applications and the operating system
  • Create PL/SQL applications that use collections
  • Learn to work with JSON data in relational database
  • Write and tune PL/SQL code effectively to maximize performance
  • Implement a virtual private database with fine-grained access control
  • Write code to interface with large objects and use SecureFile LOBs


Module 1: Introduction

  • Course Objectives
  • Course Agenda
  • Describe the full Human Resources (HR) Schema
  • Identify the Appendices Used in this Course
  • Review the online Oracle Database 12c SQL and PL/SQL documentation and the additional available resources
  • List the PL/SQL development environments Available in this course
  • Start SQL Developer and Create a Database Connection
  • Use the SQL Worksheet

Module 2: Oracle Database Exadata Express Cloud Service

  • Overview of Oracle Database Exadata Express Cloud Service
  • Accessing Cloud Database using SQL Workshop
  • Connecting to Exadata Express Database using Database Clients
  • Using SQL Developer to work with Exadata Express Database

Module 3: Overview of Collections

  • Overview of Collections
  • Use Associative arrays
  • Use Nested tables
  • Use Varrays

Module 4: Using Collections in PL/SQL

  • Write PL/SQL programs that use collections
  • Use Collections effectively
  • Enhancements to PL/SQL Type Binds
  • Binding PL/SQL only datatypes to SQL statements using DBMS_SQL

Module 5: Manipulating Large Objects

  • Working with LOBs
  • Overview of SecureFile LOBs

Module 6: Working with JSON Data

  • JSON Data
  • JSON data columns in tables
  • Generation of JSON data with SQL/JSON generation function
  • Querying JSON columns
  • PL/SQL object types for JSON

Module 7: Using Advanced Interface Methods

  • Calling External Procedures from PL/SQL
  • Benefits of External Procedures
  • Understand how an external routine is called from PL/SQL
  • C advanced interface methods
  • Java advanced interface methods
  • Access PL/SQL blocks from from Java classes using JDBC

Module 8: Performance and Tuning

  • Understand and influence the compiler
  • Tune PL/SQL code
  • Enable intra unit inlining
  • Identify and tune memory issues
  • Recognize network issues
  • Designing Applications for Real World Performance

Module 9: Improving Performance with Caching

  • Describe result caching
  • Use PL/SQL function cache
  • Review PL/SQL function cache considerations

Module 10: Analyzing PL/SQL Code

  • Finding Coding Information
  • PL/Scope Concepts
  • PL/SQL Enhancements
  • PL/SQL Pragma to mark an item deprecated

Module 11: Profiling and Tracing PL/SQL Code

  • What is Tracing and Profiling
  • Tracing PL/SQL Execution
  • Tracing PL/SQL: Steps

Module 12: Securing application through PL/SQL

  • Controlling Access to Program Units
  • Managing Access to data using PL/SQL
  • Creating Secure Application roles to control access to applications

Module 13: Safeguarding Your Code Against SQL Injection Attacks

  • SQL Injection Overview
  • Reducing the Attack Surface
  • Filtering Input with DBMS_ASSERT

Module 14: Security Features implemented through PL/SQL

  • Brief introduction to Security implementation
  • Fine Grained Access Control
  • Application Context
  • List the DBMS_RLS procedures
  • Implement a policy
  • Query the dictionary views holding information on fine-grained access

What’s Next

  • Oracle Database: SQL Tuning for Developers

Subscribe to our mailing list for special offers and promotions.

Thank you! Your subscription has been confirmed. You'll hear from us soon.