Basic auth
Username + password against your Fusion instance. Passwords are stored only in the Windows Credential Vault — never in SQLite, never in plaintext on disk.
Data Collage is a desktop SQL workbench purpose-built for Oracle Fusion SaaS. The features below cover what ships in v1 — and what's next.
Save one connection per Fusion environment. Tag them PROD / TEST / DEV so you always know which pod you're hitting before pressing Run.
Username + password against your Fusion instance. Passwords are stored only in the Windows Credential Vault — never in SQLite, never in plaintext on disk.
For environments that require SSO, Data Collage opens the Fusion login window, captures the JWT, and reuses it for BIP calls. Tokens are kept in memory and refreshed automatically when BIP rejects them.
Colour-coded chips (PROD / TEST / DEV / SANDBOX, custom labels supported) appear next to every connection and in the title bar — no more accidentally running an UPDATE-shaped SELECT against the wrong pod.
A six-step Test Connection probes BIP, deploys the read-only gateway report under your user folder, and runs a SELECT 1 smoke test. Save is gated on a passing test, so a saved connection is always a working one.
Monaco — the same editor that powers VS Code — with Oracle-aware tooling layered on top.
Oracle SQL keywords, functions, and operators are highlighted. Identifiers complete from the metadata catalog as you type.
Bundled reference for the Oracle SQL functions you actually use, with signatures, descriptions, and one-click insert. Add your own — your additions persist locally.
Define short codes (e.g. seld → SELECT DISTINCT) and full templates with tabstops. Snippets are stored locally and survive upgrades.
Use :name placeholders in your SQL. Data Collage detects them, opens a dialog for values, and substitutes them safely — the validator and the BIP gateway never see the bind syntax.
One-shot SQL formatting (Shift+Alt+F), full Monaco find/replace with regex, multi-cursor, and toggleable line/block comments. All the keystrokes you already know.
Open as many SQL tabs as you need. Each tab keeps its own results, errors, and execution time independently — switch between tabs without losing context.
Fusion SaaS doesn't expose direct database connectivity. Data Collage routes queries through a deployed BI Publisher report — and validates every statement before it leaves your machine.
Every query is parsed locally and rejected unless it's a SELECT or a WITH CTE that resolves to a SELECT. DML, DDL, and PL/SQL are blocked at the editor.
On first Test Connection, Data Collage uploads a read-only BIP data model into your Fusion catalog under /~username/NCDataCanvas/. Your DBAs see normal BI Publisher traffic.
Auth uses your Fusion identity. The app has no database credentials — because it never needs any.
BIP fault strings are parsed into structured error panels. ORA codes are extracted, line numbers are mapped back to your editor, and the offending line is highlighted.
Powered by AG Grid, so a quarter-million-row result set behaves the same as a four-row one.
Column-level filtering and sorting on every result. Hide columns you don't need and the layout sticks across runs of the same query.
Add computed columns inline using a safe expression language. Reference real columns and other formula columns — chain NET_DUE = INVOICE_AMOUNT - NVL(AMOUNT_PAID, 0) then NET_DUE_PCT = NET_DUE / INVOICE_AMOUNT * 100. Cycle detection, NULL-safe arithmetic, and NVL fallbacks ship out of the box. Rename or delete a formula and dependents are pruned with a toast — no orphan columns.
Right-click any column header to apply a number or date format — thousands separators, decimal places, percent, scientific, or a currency from a curated catalog (USD, EUR, GBP, CAD, AUD, JPY, INR). Date formats include ISO, US, EU, Oracle, datetime, and relative ("3 days ago"). Formats survive across re-runs and travel with Saved Analyses.
Right-click a column header for Keep only this column (one click to focus on one field), Copy unique values (deduped, newline-separated, honors filters), and Copy as IN clause. The IN-clause dialog handles text vs numeric, escapes single quotes correctly, wraps long lists onto multiple lines so Monaco can still highlight them, and auto-chunks past Oracle's 1,000-value limit into OR-joined blocks.
Toolbar buttons jump straight to the first or last visible column — handy on wide result sets. The target column briefly flashes so you don't lose your place.
One-click export of the current view (filtered or not) to CSV or Excel. Numeric columns export as numbers, dates as dates — no string-cleanup required at the other end. Currency formats survive the round-trip into Excel via native format strings.
A pill row above the grid tracks every active overlay — duplicates filter, top-N filter, formatted columns, linked columns. Each pill has a × (or Clear) to remove just that overlay. Right-click any header or cell → Clear all filters wipes the column filter model in one shot, so you don't have to clear three column filters one at a time.
Every result tab shows total rows and wall-clock execution time at a glance, so you can spot a regression the second it appears.
Curated drill-back into Oracle Fusion 26A for the entities Financials and Procurement teams query every day. Right-click a cell, pick the entity, and the right record opens in your browser using your existing Fusion session. No credentials in the URL, no setup beyond the first mapping.
AP invoice / payment / supplier, AR transaction / receipt, GL journal, fixed asset, expense report, purchase order, purchase requisition, and project overview — all tested end-to-end on a 26A tenant. The catalog ships with the app; no per-customer setup or admin work.
Right-click any cell → Open in Oracle Fusion…. Modules listed on the left with entity counts; entities for the selected module on the right. Mouseover switches the right pane (Windows-style menu feel); a single click on an entity opens the mapping dialog — or, if you've already mapped that entity on this tab, opens the record directly.
When the catalog's default column isn't in your result set (e.g. Asset needs BOOK_TYPE_CODE but your query against FA_ADDITIONS_B only selected ASSET_ID), flip that parameter row from Column to Value and type the fixed value — like CORP for the corporate book. Composite-key entities (Journal Entry, AR Receipt, Asset) work transparently — the URL composes from each row's mapped values, including spaces (encoded as %20, never +).
Tick Make {COLUMN} clickable for every row in this result and every cell in that column becomes an accent-underlined link — click any row to drill straight into it. A "Linked" pill appears above the grid; one click on the × unlinks. The link host doesn't have to be a key column — right-click AMOUNT, link it to AP Invoice, and AMOUNT becomes the clickable label while the URL composes from each row's INVOICE_ID.
The mapping dialog has three actions: Cancel (no change), Save (persist the mapping + linkify, no browser tab opens), Open (Save plus open the row you right-clicked). Save is the right pick when you only want to enable the linkified column; Open is the right pick when you also want to follow the link you just right-clicked.
Once you've mapped an entity on a tab, future right-clicks on that entity skip the dialog and open directly. Re-run with a different column shape and the cache invalidates per entity — only mappings whose source columns went missing get dropped. Remove a linked column and that entity's cache also clears, so the next right-click opens the dialog fresh with the Save button ready.
Deep links carry only the entity type, action, and key parameters. Authentication is your existing Fusion browser session — Data Collage never passes a password through the URL.
A small set of <code>--@</code> comment directives at the top of any query control how the result is presented. Oracle ignores them as plain comments; Data Collage interprets them on the way to the grid. They're text, so they version-control, paste, and share like any other SQL.
Set the tab title from the query. Updates live as you type — the tab renames within half a second of finishing the directive line. Survives Save Analysis and shows up as the default name in the Save dialog.
Hide specific columns (--@hide: CREATION_DATE, LAST_UPDATE_DATE) or flip it around and show only the columns you want (--@show: INVOICE_NUM, AMOUNT_PAID). Unknown names are silently ignored — a typo never blanks the grid.
Order columns explicitly with a * wildcard for everything else: --@column_order: INVOICE_NUM, INVOICE_DATE, *, AMOUNT_PAID. Listed columns land at fixed positions; * expands to all unmentioned columns in their original CSV order.
Per-column number and date formats baked into the query: --@format: INVOICE_AMOUNT = currency(USD), INVOICE_DATE = date(MM/DD/YYYY). The currency function accepts ISO codes (USD/EUR/GBP/CAD/AUD/JPY/INR), and JPY-style zero-decimal currencies just work — Intl.NumberFormat handles the per-currency rules.
Right-click in the SQL editor → Insert directive ▸ drops a template at the top of the document with the cursor parked in the right spot. Type once, learn the syntax, type it manually next time.
Directives never reach the BIP gateway — we replace them with bare -- in the payload (line numbers stay aligned for error highlighting). They're preserved verbatim in query history and Saved Analyses, so reopening any past query re-applies the same presentation.
A Saved Analysis is a single portable <code>.dcanalysis</code> file that round-trips your SQL, formula columns, column formats, hidden columns, column order, and bind-parameter defaults. Hand one to a teammate; they open it, click Run, and see exactly what you saw.
JSON-on-disk with a versioned schema. SQL, formulas, hidden columns, column order, per-column number/date formats, and bind defaults all travel together. Open an analysis in a new tab and your view rebuilds itself.
File → Save as Analysis… creates it; Save Analysis overwrites and is gated on a real dirty diff. Tab titles show a • when there are unsaved changes, and closing a dirty tab pops a Save / Don't save / Cancel guard.
Sidebar tab with search, module filter, and per-row Open / Open in new tab / Rename / Delete. Grouped by module, sorted by most-recently updated, so the analysis you touched last is always on top.
Defaults to Documents\Data Collage\Analyses\; point it at a shared OneDrive or network folder in Settings and your whole team sees the same library. Or open a one-off .dcanalysis from anywhere via File → Open Analysis….
The last bind values you ran with are saved alongside the SQL. Reopen the analysis and the bind dialog pre-fills — no re-typing the as-of date or business-unit ID every morning.
No cloud sync, no telemetry. Your queries stay on your machine.
Every successful run is logged with timestamp, connection, row count, and execution time. Reopen any past query in a new tab with one click.
A curated catalog of useful starter queries you can drop into a new tab. For your own reusable work, save it as an Analysis — full state travels with it, not just the SQL.
Short codes (ddl → DESCRIBE …) and full multi-line templates with tabstops. Your function catalog and snippet list persist locally and follow the app installation.
A query-generation panel is wired into the UI and will go live in a near-term release. The grounding model uses the bundled Fusion metadata catalog so suggestions reference real tables and columns, not hallucinations.
Plug in your own API key for OpenAI, Anthropic, or Gemini. No prompts or schemas leave your machine without your consent.
Prefer to keep everything on-device? Point Data Collage at a local Ollama endpoint and run a quantised model on your hardware.
The 9,000+ table/column catalog is used as retrieval context — not stuffed into every prompt — so token usage stays sane and suggestions stay accurate.
v1 is in early access. Pricing on request.