FuiSQL — User Guide
FuiSQL is a VS Code extension that lets you write and run SQL queries directly against Oracle Cloud ERP, with IntelliSense, query history, schema-aware column suggestions, and result export — without leaving your editor.
This extension directlty calls the standard Oracle BIP Report Service from VS code and all the history and data is stored only on the local machine.
Table of Contents
- Installation
- Connecting to Oracle Cloud ERP
- Writing SQL
- Running Queries
- IntelliSense & Autocomplete
- SQL Formatter
- Query History
- Exporting Results
- Keyboard Shortcuts
Installation
Installing the BIP Report
- Download the catalog file from here
- Log in to BI Catalog: Access the Oracle Fusion environment and navigate to the BI Catalog.
- Navigate to Destination: Navigate to the folder (e.g., under /Shared Folders/Custom) where you want to unarchive the report (Folder Location: It is highly recommended to unarchive into the /Shared Folder/Custom directory to maintain proper folder structures.
)
- Select Unarchive: In the Tasks pane on the left, click the Unarchive link.
- Upload File: In the dialog box, click Browse to select the archived .catalog file from your local machine.
- Set Options: Choose how to handle existing files (Recommended: All to replace).
- Complete: Click OK to upload and restore the report.
Important Notes:
Permissions: You must have BI Administrator/Editor roles to perform this action.
Installing the VS Code Extension
- Open VS Code
- Press
Ctrl+Shift+P (or Cmd+Shift+P on Mac) and choose Extensions: Install from VSIX…
- Select the
fuisql-x.x.x.vsix file you received
- Click Reload when prompted
To open the editor, press Ctrl+Shift+P and run FuiSQL: Open Query Editor.
Connecting to Oracle Cloud ERP
Click 🔌 Connections in the toolbar to open the Connection Manager.
Adding a connection
Fill in the following fields:
| Field |
Description |
Example |
| Name |
A label for this connection |
Production |
| Domain |
Your Oracle Cloud hostname |
company.fa.us2.oraclecloud.com |
| Username |
Your Oracle Cloud username |
john.smith@company.com |
| Password |
Your Oracle Cloud password |
— |
| Report Path |
Full path to the BI Publisher report used to run queries |
/Custom/FuiSQL/query_runner.xdo |
Click Save to store the connection. 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 to execute the query at the cursor.
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), automatic pagination is skipped.
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 three 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
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'
Query History
The 🕒 History sidebar on the left 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
How history works
- Pagination clauses (
OFFSET … FETCH NEXT … ROWS ONLY) are stripped before saving — you always get the clean original query
- If you run the same query twice it moves to the top rather than creating a duplicate
- Each entry shows a relative timestamp ("2m ago", "3h ago", "4d ago") and a row count or error badge
Exporting Results
Click ⬇ Export in the toolbar after a query completes and choose a format:
| Format |
Best for |
| CSV |
Excel, Google Sheets, general-purpose |
| TSV |
Tab-separated, some BI tools |
| JSON |
Developers, APIs, further processing |
VS Code will prompt you for a save location. The exported file contains all rows from the last executed query (not just the current page).
Keyboard Shortcuts
| Action |
Windows / Linux |
Mac |
| Run query |
Ctrl+Enter (right Ctrl) |
Option+Return |
| Format SQL |
Shift+Alt+F |
Shift+Option+F |
| Accept IntelliSense |
Tab or Enter |
Tab or Enter |
| 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.