Oracle Database 11g: Advanced PL/SQL

Required Prerequisites:

  • Knowledge of SQL
  • PL/SQL Programming experience

In this Oracle Database 11G Advanced PL/SQL training, expert Oracle University instructors will help you explore the advanced features of PL/SQL to design and tune PL/SQL. You’ll learn how it interfaces with the database and other applications in the most efficient manner.

Learn To:

  • PL/SQL designing best practices.
  • Create PL/SQL applications that use collections.
  • 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

Extend the functionality of the SQL language with PL/SQL language to write application code. This will help your organization realize the full benefit of utilizing Oracle best practices.

Virtual Private Database

You’ll also be introduced to Virtual Private Database (VPD) to implement security policies. Learn techniques and tools to strengthen applications against SQL injection attacks. Explore programming efficiency, use of external C and Java routines, PL/SQL server pages and fine-grained access.

Course Topics

  • Course objectives
  • Course agenda
  • Tables and data used for this course
  • Overview of the development environments: SQL Developer, SQL Plus
  • Identify PL/SQL block structure
  • Create procedures
  • Create functions
  • List restrictions and guidelines on calling functions from SQL expressions
  • Create packages
  • Review of implicit and explicit cursors
  • List exception syntax
  • Identify the Oracle supplied packages
  • Describe the predefined data types
  • Create subtypes based on existing types for an application
  • List the different guidelines for cursor design
  • Cursor variables
  • Overview of collections
  • Use Associative arrays
  • Use Nested tables
  • Use VARRAYs
  • Compare nested tables and VARRAYs
  • Write PL/SQL programs that use collections
  • Use Collections effectively
  • Describe a LOB object
  • Use BFILEs
  • Use DBMS_LOB.READ and DBMS_LOB.WRITE to manipulate LOBs
  • Create a temporary LOB programmatically with the DBMS_LOB package
  • Introduction to SecureFile LOBs
  • Use SecureFile LOBs to store documents
  • Convert BasicFile LOBs to SecureFile LOB format
  • Enable reduplication and compression
  • Calling External Procedures from PL/SQL
  • Benefits of External Procedures
  • C advanced interface methods
  • Java advanced interface methods
  • Understand and influence the compiler
  • Tune PL/SQL code
  • Enable intra unit inlining
  • Identify and tune memory issues
  • Recognize network issues
  • Describe result caching
  • Use SQL query result cache
  • PL/SQL function cache
  • Review PL/SQL function cache considerations
  • Finding Coding Information
  • Using DBMS_DESCRIBE
  • Using ALL_ARGUMENTS
  • Using DBMS_UTILITY.FORMAT_CALL_STACK
  • Collecting PL/Scope Data
  • The USER/ALL/DBA_IDENTIFIERS Catalog View
  • DBMS_METADATA Package
  • Tracing PL/SQL Execution
  • Tracing PL/SQL: Steps
  • Understand how fine-grained access control works overall
  • Describe the features of fine-grained access control
  • Describe an application context
  • Create an application context
  • Set an application context
  • List the DBMS_RLS procedures
  • Implement a policy
  • Query the dictionary views holding information on fine-grained access
  • SQL Injection Overview
  • Reducing the Attack Surface
  • Avoiding Dynamic SQL
  • Using Bind Arguments
  • Filtering Input with DBMS_ASSERT
  • Designing Code Immune to SQL Injections
  • Testing Code for SQL Injection Flaws

Course Objectives

  • 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
  • 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