FuiSQL — SQL queries for Oracle Fusion Cloud, inside VS Code
FuiSQL is a VS Code extension that lets you write and run SQL queries directly against Oracle Fusion Cloud — ERP Financials, HCM, PPM and Procurement — with IntelliSense, query history, schema-aware column suggestions, data-flow diagrams, and result export, without leaving your editor.
Oracle Fusion gives you no SQL console: physical SQL normally means hand-building a BI Publisher data model, and OTBI only answers in logical SQL. FuiSQL calls the standard Oracle BI Publisher Report Service directly from VS Code, so queries run with exactly the privileges your own Fusion user already has. Credentials live in VS Code's encrypted Secret Storage, and all query history and results stay on your local machine.
Links: fuisql.com · Oracle Fusion ERD Explorer (free, no sign-up — browse Fusion tables and generate the JOIN path between any two) · Pricing · FAQ
Table of Contents
- Installation
- Connecting to Oracle Fusion Cloud
- Writing SQL
- Running Queries
- IntelliSense & Autocomplete
- SQL Formatter
- Find & Replace
- Data Flow
- Query History
- Exporting Results
- Licensing
- Keyboard Shortcuts
Installation
Step 1 — Install the VS Code Extension
- Open VS Code
- Click the Extensions icon in the Activity Bar (or press
Ctrl+Shift+X / Cmd+Shift+X)
- Search for FuiSQL
- Click Install
Step 2 — Download the BIP Report Catalog
The catalog file is bundled inside the extension — no separate download required.
- Press
Ctrl+Shift+P (or Cmd+Shift+P on Mac) and run FuiSQL: Download Report Catalog
- Choose a save location when prompted — the file
FuiSQL.catalog will be saved there
- Click Reveal in File Explorer in the confirmation message to find the file immediately
Step 3 — Upload the Catalog to Oracle Fusion
- Log in to your Oracle Fusion environment and navigate to the BI Catalog
- Navigate to the folder where you want to install the report:
- Shared Access:
/Shared Folders/Custom — visible to all team members
- Private Use:
My Folder — visible only to you
- In the Tasks pane on the left, click Unarchive
- Click Browse, select the
FuiSQL.catalog file you saved in Step 2
- Under options, select All to replace any existing files
- Click OK to complete the upload
Permissions required: You must have the BI Administrator or BI Author role to perform this action.
Once setup is complete, press Ctrl+Shift+P and run FuiSQL: Open Query Editor to get started.
Connecting to Oracle Fusion Cloud
Open the FuiSQL view from the Activity Bar and click Manage Connections to open the Connection Manager.
Adding a connection
Fill in the following fields (fields marked * are required):
| Field |
Description |
Example |
| Name |
A label for this connection |
Client A |
| Environment Name |
Optional short tag shown next to the connection |
DEV10 |
| Domain * |
Your Oracle Cloud hostname |
fa-XXXX-DEV01-saasfaprod.fa.ocs.oraclecloud.com |
| Username * |
Your Oracle Cloud username or service account |
SERVICE_ACCOUNT_NAME |
| Password * |
Your Oracle Cloud password |
— |
| Report Path |
Full path to the BI Publisher report used to run queries |
/Custom/FuiSQL/FuiSQLReport.xdo |
The Report Path defaults to /Custom/FuiSQL/FuiSQLReport.xdo — the path where the bundled report catalog installs. Leave it as-is unless you uploaded the report to a different location.
Click Save to store the connection, or Test to verify the credentials first. Passwords are stored in VS Code's secret storage and never written to disk in plain text.
Switching connections
Use the connection dropdown at the top of the Query Editor to switch between saved connections. The schema dictionary loads automatically when you select a connection.
Writing SQL
The SQL editor supports multiple queries in a single session, separated by semicolons (;).
Multi-query support
SELECT * FROM per_all_people_f
WHERE ROWNUM <= 10;
SELECT * FROM gl_ledgers;
Place your cursor inside any query and press Run — only that query executes. To run a specific portion, select it first, then press Run.
Syntax highlighting
Keywords, functions, string literals, and comments are highlighted as you type. The editor uses Oracle SQL syntax rules.
-- This is a line comment
/* This is a
block comment */
Running Queries
Press Run, or use the keyboard shortcut Right Ctrl+Enter (Windows / Linux) / Right ⌥+Return (Mac), to execute the query at the cursor. The shortcut requires the modifier key on the right side of the keyboard.
Results are automatically paginated at 100 rows per page. Use the Prev and Next buttons below the results grid to navigate pages.
If your query already contains a row-limiting clause (ROWNUM, FETCH NEXT, OFFSET, LIMIT, TOP), automatic pagination is skipped.
Trial limit: Without an active license, results are capped at 10 rows per query. See Licensing to unlock full result sets.
Sorting and filtering
- Click any column header to sort ascending; click again to sort descending.
- Type in the filter box below each column header to filter that column.
- Use the global search box above the results to filter across all columns at once.
Result count
The toolbar shows the row count and execution time after each query completes (e.g. 247 rows in 1.43s).
IntelliSense & Autocomplete
FuiSQL provides autocomplete suggestions as you type. The dropdown appears automatically and shows four kinds of completions:
| Badge |
Colour |
What it suggests |
KW |
Blue |
SQL keywords (SELECT, WHERE, GROUP BY, …) |
FN |
Yellow |
Oracle functions (NVL, TO_DATE, LISTAGG, …) and SQL snippets |
OBJ |
Green |
Common Oracle ERP table names |
COL |
Purple |
Columns from your schema dictionary |
Navigating the dropdown
| Key |
Action |
↓ / ↑ |
Move through suggestions |
Tab or Enter |
Accept the highlighted suggestion |
Escape |
Dismiss |
| Click |
Accept a suggestion with the mouse |
Column suggestions
Column suggestions require the schema dictionary to be loaded (see the status bar below the editor header).
Dot trigger — type a table name or alias followed by a dot:
FROM per_all_people_f p
-- Now type: p. → all columns of PER_ALL_PEOPLE_F appear
Alias resolution — FuiSQL parses your FROM and JOIN clauses automatically, so short aliases work:
SELECT p.PERSON_ID, a.ASSIGNMENT_NUMBER
FROM per_all_people_f p
JOIN per_all_assignments_f a ON a.PERSON_ID = p.PERSON_ID
-- ↑ type a. to see columns of PER_ALL_ASSIGNMENTS_F
Partial column typing — if you type a few characters after the dot, the list filters:
p.PERSON_ -- shows only columns starting with PERSON_
Schema dictionary status bar
The thin bar below the editor header shows the dictionary state:
| Indicator |
Meaning |
| Pulsing |
Loading dictionary from remote URL |
| Green |
Ready — shows table and column count |
| Red |
Load failed — click Refresh to retry |
Click Refresh at any time to force a fresh fetch from the remote dictionary file.
FuiSQL includes a built-in Oracle SQL formatter.
- Click the Format button in the editor header, or
- Press
Shift+Alt+F (Windows / Linux) / Shift+Option+F (Mac)
If text is selected, only the selection is formatted. Otherwise, the query at the cursor is formatted.
- Puts
SELECT, FROM, WHERE, JOIN, GROUP BY, ORDER BY, HAVING, UNION each on their own line
- Indents each column in a
SELECT list on its own line
- Puts
AND / OR conditions on separate lines
- Indents
ON clauses one level under their JOIN
- Formats
CASE … WHEN … THEN … ELSE … END with each branch on its own line
- Indents subqueries automatically
- Uppercases all SQL keywords
- Never modifies string literals or comments
Before:
select p.person_id,p.last_name,a.assignment_number from per_all_people_f p join per_all_assignments_f a on a.person_id=p.person_id where p.last_name like 'Smith%' and a.assignment_type='E'
After:
SELECT
p.PERSON_ID,
p.LAST_NAME,
a.ASSIGNMENT_NUMBER
FROM per_all_people_f p
JOIN per_all_assignments_f a
ON a.PERSON_ID = p.PERSON_ID
WHERE p.LAST_NAME LIKE 'Smith%'
AND a.ASSIGNMENT_TYPE = 'E'
Find & Replace
The editor has a built-in find-and-replace widget for working within your SQL.
- Press Ctrl+F (Windows / Linux) / ⌘+F (Mac) to open Find.
- Press Ctrl+H (Windows / Linux) / ⌘+⌥+F (Mac) to open Find & Replace.
- Toggle Aa to match case.
Enter / Shift+Enter jump to the next / previous match.
- Replace changes the current match; All replaces every match.
Esc closes the widget.
The editor also supports line operations — move, copy, or delete the current line, and toggle line or block comments. See Keyboard Shortcuts for the full list. All edits, including replaces and history loads, can be reverted with Undo (Ctrl+Z / ⌘+Z).
Data Flow
Switch to the Data Flow tab in the editor header (or run it for the query at the cursor) to open a diagram of your query.
The Lineage view maps column lineage — which output columns come from which tables — and understands JOINs, UNIONs, CTEs, and subqueries. Use the ↓ SVG button to export the current diagram as an SVG file for documentation or sharing.
Query History
The History sidebar records the last 50 unique queries you have run.
- Click any entry to load it back into the editor (with the original connection pre-selected)
- Search using the box at the top of the sidebar — matches against SQL text and connection name
- ✕ button on each entry removes it from history
- Clear all removes the entire history
Exporting Results
Click Export in the toolbar after a query completes. The menu offers two scopes, each available as CSV, TSV, or JSON:
- This page — exports only the rows currently displayed (the visible page).
- All rows (re-runs query) — re-runs the query without the page limit and exports every row.
| Format |
Best for |
| CSV |
Excel, Google Sheets, general-purpose |
| TSV |
Tab-separated, some BI tools |
| JSON |
Developers, APIs, further processing |
VS Code prompts you for a save location, defaulting to your current workspace folder (or your home directory when no folder is open). Once saved, a notification lets you open the file directly.
Note: On the trial (unlicensed), exports are subject to the same 10-row cap as query results. See Licensing.
Licensing
FuiSQL is distributed as a trial. Without a license key, query results and exports are limited to 10 rows per query. All other features — IntelliSense, formatting, history, data flow, and connections — are fully available.
To activate a license, open the FuiSQL view in the Activity Bar:
- Copy the machine ID shown in the license panel (use the Copy button).
- Go to fuisql.com and enter the machine ID to obtain your license key — a free 3-month trial key is issued on the spot, no card needed.
- Paste the key into the license field and click Activate.
Use Remove license to deactivate on the current machine.
Keyboard Shortcuts
These shortcuts apply inside the FuiSQL query editor. The same list is available in-app via the Shortcuts button in the editor header.
| Action |
Windows / Linux |
Mac |
| Run query |
Right Ctrl + Enter |
Right ⌥ + Return |
| Find |
Ctrl + F |
⌘ + F |
| Replace |
Ctrl + H |
⌘ + ⌥ + F |
| Toggle line comment |
Ctrl + / |
⌘ + / |
| Toggle block comment |
Shift + Alt + A |
Shift + ⌥ + A |
| Format SQL |
Shift + Alt + F |
Shift + ⌥ + F |
| Move line up / down |
Alt + ↑ / ↓ |
⌥ + ↑ / ↓ |
| Copy line up / down |
Shift + Alt + ↑ / ↓ |
Shift + ⌥ + ↑ / ↓ |
| Delete line |
Ctrl + Shift + K |
⌘ + Shift + K |
| Undo |
Ctrl + Z |
⌘ + Z |
| Redo |
Ctrl + Y |
⇧ ⌘ + Z |
| Show suggestions |
Ctrl + Space |
⌃ + Space |
| Accept suggestion |
Tab or Enter |
Tab or Return |
| Indent |
Tab |
Tab |
| Dismiss IntelliSense |
Escape |
Escape |
Tips
Use semicolons to keep related queries together — put your lookup queries and your main query in the same editor session, separated by ;. Click inside each one to run it independently.
Format before sharing — run the formatter before pasting a query into a ticket or email. It makes queries dramatically easier to read.
History as a scratch pad — the history sidebar doubles as a quick-access list of your most-used queries. Run a query once, and it's one click away forever (up to 50 unique queries).
Aliases unlock column suggestions — even a single-letter alias like p is enough for FuiSQL to resolve column suggestions, as long as the FROM clause with the table name is visible in the same query.