Oracle migration — support on quote

Migrate Oracle to MariaDB with Oracle mode

Leave Oracle Database for MariaDB without rewriting all your PL/SQL: MariaDB's Oracle mode (sql_mode=ORACLE) accepts PL/SQL syntax, SEQUENCE, ROWNUM, synonyms and Oracle functions. Full support by RDEM Systems DBAs, Signal18 co-review on critical objects.

Why leave Oracle

Oracle cost has become structural for many companies: per-core licensing, 22% support, aggressive audits, separately-charged options. On a 4–8 core RAC cluster, annual ticket easily exceeds €200k.

The lock-in isn't the database — it's the PL/SQL code accumulated over 15–20 years. MariaDB's Oracle mode, introduced in 2018 in version 10.3, was designed precisely to break this lock: PL/SQL syntax is natively accepted by the engine.

It's the most complex of the three migrations we operate — but also the most financially rewarding. ROI is typically measured in months, not years.

The 4 most-cited reasons

Beyond the licensing cost, here's what makes Oracle → MariaDB technically viable today.

Drop Oracle licensing

Oracle Database Enterprise Edition: ~$47,500 per processor + ~22% annual support. A mid-sized cluster easily costs €100k–500k/year. MariaDB is open source, no per-core licensing.

Oracle mode in MariaDB

Since MariaDB 10.3 (2018), sql_mode=ORACLE accepts PL/SQL syntax, anonymous blocks, SEQUENCE objects, ROWNUM, synonyms — much of your Oracle code runs as-is.

Still a real SQL database

ACID transactions, foreign keys, stored procedures, triggers, views, partitioning, system-versioned tables. You don't downgrade to a key-value store — you migrate to a peer SQL engine.

Modern operations

Galera multi-master, semi-synchronous replication, Replication Manager failover, mariabackup hot backups, observability. Operations on par with Oracle RAC at a fraction of the cost.

MariaDB's Oracle mode: what works natively

Since MariaDB 10.3 (2018), simply setting SET sql_mode = 'ORACLE' enables PL/SQL compatibility. Here are the main supported features.

FeatureCoverage in Oracle mode
Anonymous PL/SQL blocksBEGIN ... END; blocks, IF/ELSIF, FOR/WHILE loops, RAISE_APPLICATION_ERROR.
Stored procedures & functionsPROCEDURE / FUNCTION with PL/SQL syntax, IN/OUT/IN OUT parameters, %TYPE / %ROWTYPE declarations.
SEQUENCE objectsCREATE SEQUENCE, NEXTVAL, CURRVAL — exactly like Oracle. Replaces AUTO_INCREMENT for ported code.
ROWNUMPseudo-column ROWNUM supported in queries, useful for top-N patterns and pagination migrated from Oracle.
SynonymsCREATE [PUBLIC] SYNONYM — useful for porting Oracle schemas using cross-schema references.
Oracle compatibility functionsNVL, DECODE, ADD_MONTHS, MONTHS_BETWEEN, LAST_DAY, NEXT_DAY, TO_CHAR, TO_DATE with Oracle format masks.
Cursors & exceptionsCURSOR declaration, OPEN/FETCH/CLOSE, EXCEPTION blocks with WHEN ... THEN, named exceptions.
PackagesPartial — PACKAGE and PACKAGE BODY supported since MariaDB 10.3, but complex package state across sessions still needs review.

What still requires rewriting

  • !Very complex PL/SQL packages with shared state across sessions
  • !Code heavily depending on specific Oracle analytic functions (Model clause, MATCH_RECOGNIZE)
  • !Complex DBMS_SCHEDULER jobs — to port to MariaDB Events or external orchestrator
  • !Materialized views with complex refresh (FAST REFRESH on commit) — to redesign
  • !Oracle Locator / Spatial: port via MariaDB Spatial (80% covered) or external solution
  • !Oracle Text: no direct equivalent, port to Elasticsearch / OpenSearch or MariaDB Mroonga

How the migration unfolds

1

Code & schema audit

Inventory of schemas, packages, procedures, triggers, jobs, materialized views, partitions. Classification: directly portable / Oracle-mode portable / needs rewrite.

2

Pilot in Oracle mode

We provision a MariaDB cluster in sql_mode=ORACLE, port the schema, replay an Oracle dump (Data Pump or third-party tool), validate a regression test pass.

3

Code adjustments

RDEM DBAs handle the rewrites identified in step 1. Critical objects (financial logic, integrity rules) are co-reviewed with Signal18 before sign-off.

4

Cutover & decommission

Cutover during a planned window, application validation, then controlled Oracle decommissioning — your licensing exit follows on your terms.

Why Signal18 co-review is critical here

An Oracle migration is the most critical operation you can do on a database. Margin for error is thin: a different transactional behavior, a trigger firing in a slightly different order, and business consistency collapses.

On critical objects (financial procedures, integrity rules, concurrency control), the Signal18 team co-reviews our porting decisions. Stéphane Varoqui and Guillaume Lefranc have spent part of their careers porting SQL code between engines.

This is a level of validation you won't find at a generalist integrator doing Oracle → anything else automatically.

Pricing

The Oracle migration is a fixed-price engagement on quote, after a mandatory preliminary audit. Price depends on PL/SQL code volume, number of schemas, Oracle-mode coverage on your code, and complexity of objects to rewrite.

The preliminary audit (typically 3 to 5 days at €1,200 excl. VAT/day, with Signal18 co-validation at €1,500 excl. VAT, see audit page) scopes the migration and identifies critical objects. It's non-negotiable on Oracle — we don't issue a firm quote without seeing the code.

The audit cost is deductible from the migration. Total ROI is generally under 12 months through Oracle license and support termination.

Ready to amortize Oracle out?

Let's scope your migration in 15 minutes. Oracle code audit can start the following week on request.

Start your managed MariaDB project

Let's discuss your database needs. Our DBA team advises you on the optimal architecture for your use case.

RDEM Systems SAS — SIREN 820 338 671 — 5 B rue des Noyers, 95300 Pontoise