Skip to content
METRIC OAK

New: the 3-week Data Platform Assessment: fixed fee, priced roadmap. See what's included →

Migration

Oracle to Microsoft Fabric migration: PL/SQL, data types and Power BI

How to migrate an Oracle data warehouse to Microsoft Fabric: Warehouse or Lakehouse, converting PL/SQL to T-SQL or Spark, empty strings and DATE semantics, change data capture, Power BI and cutover.

Hemant Walchale

Hemant Walchale
· 2 min read

Oracle warehouses move to Fabric when an organization is consolidating on Microsoft: Power BI is already the reporting standard, and Fabric puts the data and the reports on one platform. It is a bigger dialect jump than Oracle to Snowflake, because PL/SQL becomes T-SQL or Spark, so the effort is front-loaded into code conversion.

This is the approach we recommend.

1. Inventory

List schemas, tables, views, materialized views, packages, procedures, functions, triggers, database links and scheduler jobs, plus every report and extract that reads the warehouse. Retire what Oracle’s statistics show is unused.

2. Choose the landing zone

Reporting tables, views and SQL-based transformations usually go to a Fabric Warehouse (T-SQL). Heavy, procedural or file-based processing often fits a Lakehouse with Spark notebooks. Both store Delta tables in OneLake.

3. Handle the differences

Oracle Microsoft Fabric What to watch
Empty string '' is NULL Empty string and NULL differ Normalize text columns explicitly.
DATE includes time date is date only; use datetime2 Map deliberately.
NUMBER without precision DECIMAL(p, s) Choose precision for money columns.
VARCHAR2 VARCHAR Check lengths and character sets.
Case-insensitive habits in queries Case-sensitive comparisons by default Normalize or choose collation.
Sequences Identity columns where supported, or keys generated in pipelines Never reconcile on surrogate keys.
CONNECT BY Recursive CTEs or Spark logic Rewrite and test hierarchy queries.
PL/SQL packages T-SQL procedures or Spark notebooks Rewrite; the largest effort.
Triggers Pipeline logic Move out of the database.
Materialized views Tables refreshed by pipelines Re-specify refresh logic.
DBMS_SCHEDULER Data Factory pipeline schedules Rebuild.

4. Sync, reconcile and repoint Power BI

Keep Fabric current with mirroring or CDC, compare every table by domain on business keys, and repoint Power BI semantic models domain by domain (often to Direct Lake mode) once owners sign off.

5. Retire Oracle

Plan waves back from the Oracle support renewal and decommission each domain’s objects on cutover day.

The short version

Retire unused objects, put reporting in a Fabric Warehouse and heavy processing in a Lakehouse, rewrite PL/SQL, map DATE, NUMBER and empty strings deliberately, keep data in sync with mirroring or CDC, reconcile on business keys and repoint Power BI by domain.

Compare with Oracle to Snowflake and Oracle to Databricks. Browse all migration guides.

Not sure where your own platform stands? Take the free 3-minute data platform scorecard. Unfamiliar terms are explained in the data engineering glossary.

Frequently asked questions

How is PL/SQL converted for Fabric?

Set-based SQL converts to T-SQL in a Fabric Warehouse or to Spark SQL in a Lakehouse. Procedural PL/SQL (packages, cursors, exception handling) is rewritten, usually as T-SQL stored procedures or Spark notebooks. Check every converted procedure against the Warehouse's documented T-SQL limitations.

How do we keep Fabric in sync with Oracle during the migration?

Use Fabric mirroring where it supports your Oracle version and setup, or a log-based change data capture tool that lands changes in OneLake. Either way, Fabric stays current through the parallel run so reports can be compared on live data.

Which Oracle behaviours change results in Fabric?

The usual ones: Oracle treats empty strings as NULL, Oracle DATE includes a time, NUMBER without precision needs an explicit DECIMAL mapping, and sequence-generated keys will not match. Fabric Warehouse also compares text case-sensitively by default.

Have 30 minutes? Get a senior architect’s view of your data platform.

No sales deck. You talk to the engineer who would lead the work.

Book an architecture review