Oracle PL/SQL Programming

Four days of PL/SQL for developers building and maintaining Oracle application logic. Covers language fundamentals, cursors, exceptions, procedures, functions and packages, collections, bulk processing with BULK COLLECT and FORALL, triggers, dynamic SQL, JSON and LOBs, compilation and dependencies, performance tuning and secure coding. Delivered on Oracle 19c and 23ai with labs on a realistic schema.

oracle-plsql-programming

Intermediate

Databases

4 Days

Databases

databases

Online
On-site
Hybrid

Oracle PL/SQL Programming

Four days of PL/SQL for developers building and maintaining Oracle application logic. Covers language fundamentals, cursors, exceptions, procedures, functions and packages, collections, bulk processing with BULK COLLECT and FORALL, triggers, dynamic SQL, JSON and LOBs, compilation and dependencies, performance tuning and secure coding. Delivered on Oracle 19c and 23ai with labs on a realistic schema.

Duration:
4 Days
Rating:
4.8/5.0
Level:
Intermediate
1500+ users onboarded

Who will Benefit from this Training?

Training Objectives

Build a high-performing, job-ready tech team.

Personalise your team’s upskilling roadmap and design a befitting, hands-on training program with Uptut

Key training modules

Comprehensive, hands-on modules designed to take you from basics to advanced concepts
Download Curriculum
  • PL/SQL Language Foundations
    1. Block structure: declaration, execution and exception sections
    2. Anonymous blocks, named units and where each belongs
    3. How PL/SQL and SQL engines interact and the cost of context switching
    4. Development environment setup and compilation feedback
    5. Coding standards, naming and formatting conventions
    6. Hands-on: build and compile a first set of blocks with deliberate errors to diagnose
  • Types, Variables and Control Structures
    1. Scalar types, anchored declarations with %TYPE and %ROWTYPE
    2. Subtypes, constants and variable scope and visibility
    3. Conditional logic with IF and CASE
    4. Loop constructs and loop control statements
    5. Nested blocks, labels and scope resolution
    6. Hands-on: implement a business rules routine with layered control flow
  • SQL Within PL/SQL
    1. SELECT INTO and handling no data found and too many rows
    2. DML statements and implicit cursor attributes
    3. Transaction control: COMMIT, ROLLBACK and savepoints
    4. Autonomous transactions and their appropriate use
    5. The RETURNING clause for capturing modified values
    6. Hands-on: build a transactional routine with correct commit boundaries
  • Cursors and Result Set Processing
    1. Explicit cursor declaration, opening, fetching and closing
    2. Cursor FOR loops and parameterised cursors
    3. Cursor variables, REF CURSOR and returning result sets to clients
    4. FOR UPDATE and WHERE CURRENT OF for locked processing
    5. Choosing between cursor loops and set-based SQL
    6. Hands-on: return a result set to a calling application via a REF CURSOR
  • Exception Handling
    1. Predefined, non-predefined and user-defined exceptions
    2. RAISE_APPLICATION_ERROR and designing error codes
    3. SQLCODE, SQLERRM and DBMS_UTILITY error stack functions
    4. Exception propagation across nested blocks and program units
    5. Logging errors without swallowing them
    6. Hands-on: implement an error handling and logging framework
  • Procedures and Functions
    1. Parameter modes, defaults and named notation
    2. Functions in SQL statements and the purity requirements
    3. Deterministic functions and result cache
    4. Invoker rights versus definer rights
    5. Overloading, forward declaration and recursion
    6. Hands-on: build a set of stored program units with documented interfaces
  • Packages
    1. Specification and body separation as an interface contract
    2. Public and private constructs and information hiding
    3. Package state, initialisation blocks and session persistence
    4. Overloading within packages and cursor variable exposure
    5. Useful supplied packages: DBMS_OUTPUT, UTL_FILE, DBMS_SCHEDULER, DBMS_LOB
    6. Hands-on: refactor standalone procedures into a coherent package API
  • Collections and Records
    1. Associative arrays, nested tables and VARRAYs compared
    2. Records, nested records and record based DML
    3. Collection methods, iteration and sparse collections
    4. Multilevel collections and collections of records
    5. Persistent collection types in the database
    6. Hands-on: process a complex dataset in memory using collections
  • Bulk Processing and Performance Patterns
    1. BULK COLLECT with LIMIT for controlled memory use
    2. FORALL for bulk DML and SAVE EXCEPTIONS for partial failure
    3. Measuring the context switch cost you eliminate
    4. Pipelined table functions and parallel enabled functions
    5. When set-based SQL still beats any PL/SQL approach
    6. Hands-on: convert a row-by-row routine to bulk processing and benchmark both
  • Triggers
    1. DML trigger types, timing and row versus statement level
    2. Compound triggers and resolving mutating table errors
    3. INSTEAD OF triggers on views
    4. System and DDL event triggers
    5. Trigger ordering, FOLLOWS and maintainability concerns
    6. Hands-on: implement an audit and validation trigger set without mutating errors
  • Dynamic SQL
    1. EXECUTE IMMEDIATE and native dynamic SQL
    2. Bind variables, USING and INTO clauses
    3. DBMS_SQL for statements with unknown structure at compile time
    4. SQL injection in PL/SQL and defending with DBMS_ASSERT
    5. Performance implications of dynamic versus static SQL
    6. Hands-on: build a dynamic query routine and prove it resists injection
  • JSON, Large Objects and External Data
    1. JSON storage, generation and querying from PL/SQL
    2. JSON_TABLE, path expressions and PL/SQL JSON object types
    3. CLOB, BLOB and BFILE handling with DBMS_LOB
    4. UTL_FILE for server side file reading and writing
    5. Calling web services and handling structured responses
    6. Hands-on: parse a JSON payload into relational tables
  • Dependencies, Compilation and Code Management
    1. Dependency tracking, invalidation and recompilation
    2. Fine-grained dependency behaviour and its effect on deployment
    3. Conditional compilation for version specific code
    4. Compiler warnings, PLSQL_WARNINGS and treating warnings as defects
    5. Native compilation and optimisation levels
    6. Hands-on: diagnose and resolve an invalidation cascade
  • Profiling and Tuning PL/SQL
    1. DBMS_PROFILER and DBMS_HPROF for hierarchical profiling
    2. Identifying context switching and excessive SQL execution
    3. NOCOPY hints, parameter passing and memory behaviour
    4. Caching strategies: result cache, deterministic functions and package variables
    5. Reducing PGA consumption in high concurrency workloads
    6. Hands-on: profile a slow package and deliver a measured improvement
  • Debugging, Testing and Secure Coding
    1. Instrumentation and application tracing with DBMS_APPLICATION_INFO
    2. Interactive debugging in modern development tools
    3. Unit testing PL/SQL with utPLSQL and building a regression suite
    4. Least privilege execution and code security review
    5. Wrapping, source protection and deployment practice
    6. Code review checklist for production PL/SQL
    7. Hands-on: capstone package delivered with tests, instrumentation and a review

Hands-on Experience with Tools

Training Delivery Format

Flexible, comprehensive training designed to fit your schedule and learning preferences
Opt-in Certifications
AWS, Scrum.org, DASA & more
100% Live
on-site/online training
Hands-on
Labs and capstone projects
Lifetime Access
to training material and sessions

How Does Personalised Training Work?

Skill-Gap Assessment

Analysing skill gap and assessing business requirements to craft a unique program

1

Personalisation

Customising curriculum and projects to prepare your team for challenges within your industry

2

Implementation

Supplementing training with consulting support to ensure implementation in real projects

3

Why this course

  • Bulk processing changes the numbers: Converting row-by-row loops to BULK COLLECT and FORALL routinely cuts runtimes by an order of magnitude, and it gets a dedicated module.
  • Packages as the unit of design: Teams learn to structure code into packages with clear interfaces rather than accumulating standalone procedures.
  • Injection-safe dynamic SQL: Native dynamic SQL and DBMS_SQL are taught with bind variables and DBMS_ASSERT rather than avoided.
  • Debugging and testing included: Instrumentation, profiling and unit testing are part of the course, so code arrives maintainable rather than merely working.

Training objectives

  • Write structured PL/SQL blocks using appropriate types and control flow
  • Embed SQL in PL/SQL and use implicit and explicit cursors correctly
  • Implement layered exception handling with meaningful error contracts
  • Build procedures, functions and packages with clean interfaces
  • Use collections and records to process structured data in memory
  • Apply BULK COLLECT and FORALL to eliminate context switching overhead
  • Implement triggers appropriately and avoid mutating table problems
  • Write injection-safe dynamic SQL using bind variables
  • Work with JSON, large objects and file handling from PL/SQL
  • Manage dependencies, invalidation and conditional compilation
  • Profile and tune PL/SQL for measurable performance improvement
  • Instrument, debug, unit test and secure production PL/SQL code

Who will benefit

  • Application developers working against Oracle databases
  • Database developers and application DBAs
  • Developers migrating to Oracle from another platform
  • Data engineers building Oracle based ETL logic
  • Technical leads setting PL/SQL coding standards

Lead the Digital Landscape with Cutting-Edge Tech and In-House " Techsperts "

Discover the power of digital transformation with train-to-deliver programs from Uptut's experts. Backed by 70,000+ professionals across the world's leading tech innovators.

Frequently Asked Questions

1. What are the pre-requisites for this training?
Faq PlusFaq Minus

The training does not require you to have prior skills or experience. The curriculum covers basics and progresses towards advanced topics.

2. Will my team get any practical experience with this training?
Faq PlusFaq Minus

With our focus on experiential learning, we have made the training as hands-on as possible with assignments, quizzes and capstone projects, and a lab where trainees will learn by doing tasks live.

3. What is your mode of delivery - online or on-site?
Faq PlusFaq Minus

We conduct both online and on-site training sessions. You can choose any according to the convenience of your team.

4. Will trainees get certified?
Faq PlusFaq Minus

Yes, all trainees will get certificates issued by Uptut under the guidance of industry experts.

5. What do we do if we need further support after the training?
Faq PlusFaq Minus

We have an incredible team of mentors that are available for consultations in case your team needs further assistance. Our experienced team of mentors is ready to guide your team and resolve their queries to utilize the training in the best possible way. Just book a consultation to get support.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.