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
· 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.