Course Objective :
- 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.
Target Audience :
This course is designed to cater to a broad range of participants who want to establish a strong foundation in SQL within Oracle ecosystem.
- Beginners with No Database Experience
- Database Beginners with Oracle SQL Exposure
- Database Administrators (DBAs)
- Data Analysts
- Developers
- IT Professionals and System Administrators
- Business Professionals
- Students and Enthusiasts
- Career Changers
- Small Business Owners
Pre – Requisites :
- Knowledge of SQL Programming
- Introduction to Oracle Database SQL
Course Outline :
Introduction
- Course objectives
- Course agenda
- Tables and data used for this course
- Overview of the development environments: SQL Developer, SQL Plus
PL/SQL Programming Concepts Review
- 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
Designing PL/SQL Code
- Describe the predefined data types
- Create subtypes based on existing types for an application
- List the different guidelines for cursor design
- Cursor variables
Using Collections
- 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
Manipulating Large Objects
- 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
Using Advanced Interface Methods
- Calling External Procedures from PL/SQL
- Benefits of External Procedures
- C advanced interface methods
- Java advanced interface methods
Performance and Tuning
- Understand and influence the compiler
- Tune PL/SQL code
- Enable intra unit inlining
- Identify and tune memory issues
- Recognize network issues
Improving Performance with Caching
- Describe result caching
- Use SQL query result cache
- PL/SQL function cache
- Review PL/SQL function cache considerations
Analyzing PL/SQL Code
- 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
Profiling and Tracing PL/SQL Code
- Tracing PL/SQL Execution
- Tracing PL/SQL: Steps
Implementing VPD with Fine-Grained Access Control
- 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
Safeguarding Your Code Against SQL Injection Attacks
- 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