Est. 1979 Intermediate

Oracle SQL

Oracle SQL is the SQL dialect and PL/SQL procedural extension of Oracle Database, the first commercially available SQL relational database and a backbone of enterprise data systems since 1979.

Created by Larry Ellison, Bob Miner, and Ed Oates (Software Development Laboratories, later Oracle Corporation)

Paradigm Declarative, set-based query language (SQL) with an imperative, block-structured procedural extension (PL/SQL)
Typing Static and strong at the schema level; strongly typed in PL/SQL, with some implicit type coercion in SQL
First Appeared 1979
Latest Version Oracle AI Database 26ai (October 2025)

Oracle SQL is the dialect of the Structured Query Language (SQL) implemented by Oracle Database, together with its procedural companion PL/SQL. It is not a standalone language in the way C or Python is, but rather the way developers and applications talk to one of the most consequential pieces of enterprise software ever built. When Oracle shipped Version 2 in 1979, it became the first commercially available SQL relational database, beating even IBM — whose System R research had invented SQL — to market. More than four decades later, Oracle SQL still runs banks, governments, airlines, and the back offices of much of the Fortune 500.

Oracle’s defining bet was commercial timing: take Edgar Codd’s relational theory and IBM’s SEQUEL language out of the research lab and sell a working product before anyone else. That head start, compounded over decades, turned SQL into the lingua franca of business data.

History & Origins

The story begins in 1977, when Larry Ellison, Bob Miner, and Ed Oates founded Software Development Laboratories (SDL). They had read Edgar F. “Ted” Codd’s landmark 1970 paper describing the relational model, and they had seen IBM’s published papers on System R, the research project that produced the SEQUEL query language (later renamed SQL). IBM, cautious about cannibalizing its existing database products, was slow to commercialize. Ellison and his co-founders were not.

Renamed Relational Software, Inc., the company released Oracle Version 2 in 1979 — there was no publicly released Version 1, as the founders reasoned that customers would be wary of buying a “first” version. In 1983, the company adopted the name of its product and became Oracle Corporation, the same year it shipped Version 3, rewritten in C so the database could be ported across the many incompatible hardware platforms of the era. That portability, unusual at the time, was a major competitive advantage.

Through the 1980s Oracle added the foundations of a serious enterprise database: multiversion read consistency (V4, 1984), client/server and distributed queries (V5, 1985), and row-level locking with online backup in V6 (1988) — the release that also introduced the first version of PL/SQL.

Design Philosophy

Oracle SQL inherits the core philosophy of SQL itself, then layers Oracle-specific pragmatism on top:

  • Declarative data access. SQL is set-based and declarative: you describe what data you want, and the query optimizer decides how to retrieve it. Oracle’s cost-based optimizer (introduced in Oracle7) was a major step in making this practical at scale.
  • A procedural escape hatch. Pure SQL cannot express loops, complex control flow, or reusable server-side logic. PL/SQL fills that gap with a block-structured, imperative language featuring variables, cursors, exception handling, and packages — all running close to the data inside the database engine.
  • Backward compatibility above all. Because customers run mission-critical systems for decades, Oracle preserves old behavior aggressively. The proprietary (+) outer-join operator, the DUAL table, DECODE, NVL, CONNECT BY, and ROWNUM all survive alongside their later ANSI-standard equivalents.
  • Engineered for availability and scale. Features like Real Application Clusters (RAC), Data Guard, partitioning, and the multitenant architecture reflect a relentless focus on uptime, recoverability, and large multi-user workloads.

Key Features

  • PL/SQL — Oracle’s procedural extension, supporting stored procedures, functions, packages, triggers, and exception handling executed inside the database.
  • SQL*Plus and SQLcl — the classic command-line interface (descended from the early “UFI,” User Friendly Interface) and its modern successor for running SQL and PL/SQL.
  • Cost-based optimizer — chooses execution plans based on table statistics rather than fixed rules.
  • Partitioning — range, list, hash, and composite partitioning for managing very large tables.
  • Real Application Clusters (RAC) — shared-disk clustering for high availability and horizontal scale (since Oracle9i).
  • Multitenant / pluggable databases — consolidate many databases inside a single container (since 12c).
  • In-Memory Column Store — a columnar format for analytic queries (since 12c).
  • JSON, JSON Relational Duality, and AI Vector Search — modern document and AI-oriented capabilities added in 23ai and carried into 26ai.

A small taste of Oracle SQL and PL/SQL:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
-- A declarative SQL query against the built-in DUAL table
SELECT 'Hello, World!' AS greeting FROM dual;

-- A short PL/SQL block: imperative logic running inside the database
BEGIN
   FOR rec IN (SELECT department_name, COUNT(*) AS headcount
                 FROM employees JOIN departments USING (department_id)
                GROUP BY department_name)
   LOOP
      DBMS_OUTPUT.PUT_LINE(rec.department_name || ': ' || rec.headcount);
   END LOOP;
END;
/

Evolution

Oracle’s version history reads like a tour of enterprise computing trends, with the suffix on each release advertising the era’s marketing focus:

VersionYearHighlight
V21979First commercial SQL RDBMS
V31983Rewritten in C; portable
V61988Row-level locking; first PL/SQL
Oracle71992Stored procedures, triggers, cost-based optimizer
Oracle8i1999“i” for internet; embedded Java
Oracle9i2001Real Application Clusters; ANSI joins
Oracle 10g2003“g” for grid computing
Oracle 12c2013“c” for cloud; multitenant, In-Memory
Oracle 19c2019Long-Term Release; enterprise standard
Oracle 23ai2024AI Vector Search; JSON Relational Duality
Oracle AI Database 26ai2025AI-native long-term release

The naming scheme itself evolved: lettered suffixes (i, g, c) gave way to a year-based number with 18c (2018), and most recently the “ai” suffix in 23ai and 26ai signals a pivot toward AI-native database features. Oracle 19c remains widely deployed because of its long support window, even as newer releases ship.

Throughout, Oracle SQL has tracked — but never been strictly bound by — the ANSI/ISO SQL standards (SQL-86, SQL-92, SQL:1999 and later). Oracle adopted standard JOIN syntax in 9i (2001) while keeping its older proprietary forms, a typical example of its compatibility-first approach.

Current Relevance

Oracle Database remains a dominant force in enterprise data, especially for transactional systems demanding strong consistency, high availability, and mature tooling. It is the foundation of Oracle’s own application empire — E-Business Suite, PeopleSoft, Siebel, and JD Edwards — and of countless third-party and in-house systems in banking, telecom, government, and manufacturing.

The modern emphasis is on cloud and convergence: the Autonomous Database on Oracle Cloud Infrastructure markets self-tuning, self-patching operation, while the 23ai and 26ai releases fold vector search and AI directly into the relational engine so that machine-learning workloads can run next to operational data. For developers wanting to learn on a modern machine, Oracle now ships a free, container-friendly Oracle Database Free edition through the Oracle Container Registry, complemented by popular community images such as gvenzl/oracle-free.

It is worth noting that Oracle’s commercial weight has always cut both ways: licensing costs and lock-in concerns have driven some high-profile migrations away — most famously Amazon, which moved the bulk of its internal systems off Oracle by around 2019. Even so, the installed base remains vast and durable.

Why It Matters

Oracle SQL matters because Oracle Database, more than any other product, made the relational model a commercial reality. By shipping a working SQL database in 1979, Oracle helped turn an academic idea — Codd’s relational algebra and IBM’s SEQUEL — into the default way the business world stores and queries data. Decades of compounding adoption made SQL the most widely known data language on Earth, and PL/SQL became a template that later systems, including PostgreSQL’s PL/pgSQL, openly imitated.

For anyone exploring the history of programming languages, Oracle SQL is a reminder that being first to market, and then never breaking compatibility, can matter as much as technical elegance. The (+) operator and the DUAL table are quirks born of the 1980s that still run in production today — living archaeology in one of computing’s most important pieces of infrastructure.

Timeline

1977
Larry Ellison, Bob Miner, and Ed Oates found Software Development Laboratories (SDL), inspired by Edgar Codd's relational model and IBM's System R research, which had introduced the SEQUEL/SQL query language.
1979
The company (renamed Relational Software, Inc.) ships Oracle Version 2 — widely credited as the first commercially available SQL-based relational database. Numbering started at 2 to avoid the stigma of a 'version 1'.
1983
The company is renamed Oracle Corporation after its flagship product, and Oracle V3 is released, rewritten in C for portability across hardware platforms.
1988
Oracle V6 introduces row-level locking, online backup, and the first version of PL/SQL, Oracle's procedural extension to SQL.
1992
Oracle7 brings mature PL/SQL with stored procedures, functions, packages and triggers, declarative referential integrity, and a cost-based query optimizer.
1999
Oracle8i (released after Oracle8 in 1997) adds internet-era features including an embedded Java virtual machine; the '8i' and later '9i' suffixes signal the internet focus.
2001
Oracle9i introduces Real Application Clusters (RAC) for shared-disk clustering, native XML support, and ANSI-standard JOIN syntax alongside Oracle's legacy (+) outer-join operator.
2013
Oracle 12c ('c' for cloud) introduces the multitenant architecture with pluggable databases and the In-Memory Column Store.
2019
Oracle 19c ships as a Long-Term Release and becomes the de facto enterprise standard thanks to an extended support window reaching into the 2030s.
2024
Oracle Database 23ai is released (GA May 2024), renamed from 23c to emphasize AI features such as AI Vector Search and JSON Relational Duality.
2025
Oracle AI Database 26ai is released (October 2025) as the new long-term release, succeeding 23ai with an AI-native focus.

Notable Uses & Legacy

Banking and financial services

Oracle Database underpins core banking and transaction systems at major institutions and is the engine behind Oracle's own FLEXCUBE core banking platform, prized for ACID transactions, high availability, and data integrity in OLTP workloads.

Enterprise ERP and CRM suites

Oracle E-Business Suite, PeopleSoft, Siebel, and JD Edwards all use Oracle Database as their backing store, making Oracle SQL and PL/SQL central to large-scale enterprise resource planning and customer relationship management deployments.

Government and public sector

Government agencies — including departments within the U.S. and U.K. governments — have long relied on Oracle Database for tax, defense, and social-service record systems requiring strong security and durability.

Data warehousing on Exadata

Large enterprises run decision-support and analytics workloads on Oracle Database, frequently on Oracle's engineered Exadata systems, combining partitioning, parallel query, and columnar in-memory processing.

Amazon (former flagship user)

Amazon historically ran much of its internal infrastructure on Oracle Database before publicly migrating the bulk of it to AWS-native databases by around 2019 — one of the most-cited large-scale migrations away from Oracle.

Language Influence

Influenced By

Relational model (E. F. Codd) IBM System R SEQUEL/SQL

Influenced

PL/pgSQL EnterpriseDB

Running Today

Run examples using the official Docker image:

docker pull container-registry.oracle.com/database/free:latest

Example usage:

docker run -d --name oracle-free -p 1521:1521 -e ORACLE_PWD=YourPassword container-registry.oracle.com/database/free:latest
Last updated: