Walk one legacy Oracle workflow through its full ~18-day Databricks migration lifecycle
A real Oracle PL/SQL stored proc + Informatica mapping is analyzed on disk. Cursor orchestrates Databricks MCP, Opus, Composer, Codex, and Unity Catalog (~40 min agent compute) — then sits in code review, runs a 2-week DLT shadow against Oracle, gets 3 stakeholder sign-offs, and cuts over in a CAB-approved window. Played back at warp speed. The incumbent GSI's 5-year, $22M plan becomes 18 months and $6.8M.
Migrate this Informatica workflow
Oracle 19c · PL/SQL · CUSTOMER_RFM_SEGMENTATION → Databricks · Unity Catalog · DLT
1-- LEGACY: Oracle 19c · ACME_DW.customer_rfm_segmentation2-- Idioms touched on migration day:3-- · explicit cursor + FETCH loop4-- · GLOBAL TEMPORARY TABLE5-- · MERGE INTO ... USING6-- · CONNECT BY PRIOR (recursive hierarchy)7-- · NVL / DECODE / ROWNUM / TO_CHAR(date,'YYYYMM')89CREATE GLOBAL TEMPORARY TABLE tmp_rfm_scores (10 customer_id NUMBER(18), run_ym CHAR(6),11 last_order_dt DATE, recency_days NUMBER(6),12 order_count NUMBER(8), gross_sales NUMBER(18,2),13 r_score NUMBER(1), f_score NUMBER(1),14 m_score NUMBER(1), rfm_cell CHAR(3)15) ON COMMIT PRESERVE ROWS;1617CURSOR c_customers IS18 SELECT c.customer_id,19 NVL(MAX(o.order_dt), DATE '1900-01-01'),20 COUNT(o.order_id),21 NVL(SUM(o.gross_amount), 0)22 FROM acme_dw.customers c23 LEFT JOIN acme_dw.orders o24 ON o.customer_id = c.customer_id25 AND o.order_dt >= ADD_MONTHS(p_run_date, -24)26 WHERE c.status_cd IN ('A','H')27 AND ROWNUM <= 500000028 GROUP BY c.customer_id29 ORDER BY c.customer_id;3031OPEN c_customers;32LOOP33 FETCH c_customers INTO r_cust.customer_id, ...34 EXIT WHEN c_customers%NOTFOUND;35 -- stage into tmp_rfm_scores36END LOOP;37CLOSE c_customers;3839MERGE INTO acme_dw.mart_customer_rfm t40USING ( SELECT customer_id, run_ym, rfm_cell,41 DECODE(rfm_cell,'555','Champion','544','Loyal',42 '344','Promising','155','Hibernating','Other')43 FROM tmp_rfm_scores44 WHERE run_ym = TO_CHAR(p_run_date,'YYYYMM') ) s45ON (t.customer_id = s.customer_id AND t.run_ym = s.run_ym)46WHEN MATCHED THEN UPDATE SET t.rfm_cell = s.rfm_cell, ...47WHEN NOT MATCHED THEN INSERT (...) VALUES (...);4849-- Tier rollup over the customer_tier hierarchy.50SELECT LPAD(' ', 2*(LEVEL-1)) || t.tier_code,51 COUNT(DISTINCT r.customer_id), SUM(r.gross_sales)52 FROM acme_dw.customer_tier t53 LEFT JOIN acme_dw.mart_customer_rfm r ON r.tier_code = t.tier_code54 START WITH t.parent_tier IS NULL55CONNECT BY PRIOR t.tier_code = t.parent_tier;
Reads the real stored proc + Informatica XML on disk — analysis latency is not simulated
For the Databricks AE
Why you play this demo: every quarter of migration compressed is a quarter of Databricks consumption earlier.
Pulled-forward ARR
At a $15M/yr committed-use target, compressing a 5-year migration to 18 months is worth ~$45M in consumption pulled forward per account.
Unblocked deals
Migration bill drops from $22M to $6.8M. The customer CFO can budget it; the AE can actually close.
Clean account, no GSI middleman
Customer's own team stays on the keyboard. Account stays clean for expansion — Genie, Unity Catalog, Mosaic AI, foundation models — without a SI tollbooth.
Defensive against Snowflake / BigQuery: customers who can migrate fast don't bake off. Cursor is the faster path.
Databricks consumption pulled forward · Oracle/Informatica TCO retired
What the Databricks AE takes to their prospect's CFO.
Line item
Before
With Cursor
Delta
Migration bill
$22M over 5 years
$6.8M over 18 months
(incumbent GSI fixed bid)
−69%
Pulled-forward ARR
—
$45M+ · 42 months sooner
(at $15M/yr committed-use)
new
Annual run cost
$14.7M/yr on-prem
$3.9M/yr on Databricks
(Oracle + Informatica + DC retired)
−73%
Per-workflow calendar
~12 weeks (GSI)
~18 days (agent + reviews + parallel run + cutover)
(human review + 2-wk shadow + sign-off + CAB still happen)
−78%
Per-workflow engineering cost
$71,200 GSI fixed-bid
~$2,400 internal
(~40 min agent compute + ~6 hrs human review)
−97%
Portfolio throughput
~1 workflow / 2 weeks (GSI)
~12 in flight at any time · 18-month finish
(2 squads · same review/sign-off/CAB gates)
24× concurrency
DBU rates reference serverless SQL Warehouse Large at $0.70/DBU-hour (public list). Round up for SE-safe quoting.
Why a data-platform team trusts this motion
Guardrails, not guesswork.
Row-equivalence harness
Every migration PR is gated on `row delta = 0` and `monetary Σ delta = $0.00` against a 1% Oracle sample.
Unity Catalog lineage preserved
Bronze → silver → gold lineage registered before PR opens. No tables land in the wild without grants + owner.
Human approval gate
Agent proposes the migration, never merges. A data-platform reviewer ships the change.
No schema widening
Agent rejects its own patch if column types widen, columns drop, or natural keys shift. A migration note is required otherwise.
~40 min agent compute · 4 human checkpoints · 2-week parallel run · CAB-approved cutover.Cursor compresses the engineering — the change-management gates a regulated data platform requires still happen.