PL/SQL
BasicAdvancedThe procedural layer on top of SQL: blocks, cursors, exceptions, named program units, packages, triggers, dynamic SQL and bulk operations. A reference course to read and try in your own Oracle — nothing here runs on the page, and every printed result is labelled as documented rather than executed.
6
modules
19
lessons
Sign in to begin →Sign in, then straight into the first lesson.
Course contents
01PL/SQL fundamentalsBasic
The PL/SQL block
Variables, structure, and the anonymous block everything is built from.
Declaring data
Types, constants, and the two declarations that track the table for you.
Conditional logic
IF, CASE, and the three-valued logic underneath both.
Loops and iteration
Three loop forms, and the exit condition that decides whether they end.
02SQL inside PL/SQLBasic
Running SQL from PL/SQL
SELECT INTO, DML, and the attributes that tell you what just happened.
Cursor loops
Stepping through query results one row at a time — and when not to.
Explicit cursors
Opening, fetching and closing by hand, and the attributes that control the loop.
03Errors and transactionsBasic
Exception handling
Catching failures deliberately, and the handler that hides bugs.
User-defined exceptions
Declaring your own failures, and how one propagates out of a block.
Transactions in PL/SQL
Who commits, savepoints, and the block that commits independently.
04Named program unitsAdvanced
Stored procedures and functions
Package SQL logic on the database, and call it by name.
Parameters and modes
IN, OUT, IN OUT, defaults, named notation, and the copy nobody mentions.
Packages
Group related routines behind a published interface.
Dynamic SQL
Building statements at runtime, and the injection hole it opens.
05Records and collectionsAdvanced
Records
One variable holding several named fields, and where you have already been using them.
Collections and bulk operations
Arrays of values, and the context switch that makes row-at-a-time loops slow.
06Database-side behaviourAdvanced
Triggers
Code the database runs for you — and why that cuts both ways.
Performance and context switches
Where the time actually goes, and the rewrite that removes most of it.
Testing and instrumentation
Making stored code observable, and testable, without a debugger.
Ready when you are.
Opening a lesson takes an account. Nothing to install.