← All courses

🏛️ Oracle Database

The one you inherit in an enterprise — SQLcl, schemas that are users, NUMBER and VARCHAR2, the empty-string-is-NULL trap, PL/SQL, and reading a plan the optimizer actually chose.

No lessons published yet — this is the roadmap, so you can see exactly what the course will cover before it lands.

Before you start: Learn SQL — Series 1 and Series 2. This track assumes you can already write the query. What it teaches is Oracle's dialect, its object model and its procedural language — the things that make SQL you know behave in a way you did not expect.

Short on time? The 14 episodes marked core are the shortest path to being productive at work. Start there and pick up the rest whenever a job asks for them.


Series 1 · Oracle Essentials

the object model, the types, and the rules that surprise everyone

  1. 01

    SQLcl and the Object Model — A User Is a Schema, and What 'Database' Means Here

    coreintermediatecoming soon
  2. 02

    Types and DUAL — The Rule That the Empty String Is NULL

    coreintermediatecoming soon
  3. 03

    Sequences, IDENTITY and MERGE — Generated Keys and Upserts

    coreintermediatecoming soon
  4. 04

    The Data Dictionary — Reading a Schema Nobody Documented

    coreintermediatecoming soon
  5. 05

    CONNECT BY, DECODE and (+) — Reading the SQL Already in the Codebase

    intermediatecoming soon
  6. 06

    Data Pump — expdp, impdp, and Why the File Landed on the Server

    coreintermediatecoming soon
  7. 07

    Project — Take an Unfamiliar Oracle Schema and Answer a Question From It

    coreintermediate#projectcoming soon

Series 2 · PL/SQL

the procedural language the codebase is already written in

  1. 01

    PL/SQL Blocks — %TYPE, %ROWTYPE and the Shape of the Language

    coreadvancedcoming soon
  2. 02

    Packages — The Spec, the Body, and the Unit Every Oracle Codebase Is Built From

    coreadvancedcoming soon
  3. 03

    Cursors, BULK COLLECT and FORALL — Why Row-at-a-Time PL/SQL Is Slow

    coreadvancedcoming soon
  4. 04

    Exceptions — and the WHEN OTHERS That Swallows Everything

    advancedcoming soon
  5. 05

    Triggers, Mutating Tables and Dynamic SQL — Where Injection Actually Happens

    advancedcoming soon
  6. 06

    Project — Write a Package That Loads and Reconciles a Table

    coreadvanced#projectcoming soon

Series 3 · Performance

reading a real plan, and the tools you are licensed to use

  1. 01

    DBMS_XPLAN — The Plan Oracle Actually Used, and Which Tools You May Run

    coreadvancedcoming soon
  2. 02

    The Optimizer and DBMS_STATS — Statistics, Histograms and Bind Variable Peeking

    coreadvancedcoming soon
  3. 03

    Indexes — B-tree, Bitmap, and Why Bitmap Belongs Only in a Warehouse

    coreadvancedcoming soon
  4. 04

    Partitioning and Materialized Views — Parallel Query and Query Rewrite

    advancedcoming soon
  5. 05

    Project — Make an Inherited Query Fast Without Rewriting the Application

    coreadvanced#projectcoming soon

Not here, on purpose

  • SQL itself — covered in Learn SQL
  • Database administration — RMAN, Data Guard, patching, storage, RAC operations — RMAN and Data Guard are a DBA speciality and are not covered — this track is for the person writing queries and PL/SQL. In this course, Series 1 · 22 teaches Data Pump, which is the half a developer owns
  • Choosing Oracle for a new system — covered in Database X vs Database Y, Series 1 · 05, which is honest about how much of that decision is the licence