Connection Management — Save multiple Oracle Database connections with password encryption (stored in OS keychain via VSCode SecretStorage)
Schema Browser — Tree view in the activity bar: connections → schemas → tables/views
Table Data Viewer — Click any table or view to browse its data with a paginated table renderer
Table Info — View column metadata (type, nullable, default, comments) and estimated row count
SQL Query Runner — Run ad-hoc SQL queries and view results in a tabbed panel
Row Detail Inspector — Click any row to inspect all column values in a detail sidebar
No Oracle Client Required — Uses oracledb thin mode (pure JavaScript, no Instant Client needed)
Requirements
VSCode 1.85.0 or later (or Cursor)
Oracle Database 11g Release 2 or later
No Oracle Instant Client required (uses thin mode by default)
Getting Started
Click the Oracle icon in the activity bar
Click the + button to add a connection
Enter host, port, service name, username, and password
The connection will be tested on save (you can save anyway if it fails)
Expand the connection → schemas → tables to browse
Click a table to view its data
Use the Run SQL Query command to execute ad-hoc queries
Configuration
Setting
Default
Description
oracleExplorer.defaultLimit
100
Default row limit for table data and query results
oracleExplorer.timeout
30
Connection/query timeout in seconds
Commands
Command
Description
Add Connection
Create a new Oracle connection
Edit Connection
Modify an existing connection
Delete Connection
Remove a connection
Connect / Test
Test the connection
Refresh
Close all pools and refresh the tree
View Table Data
Browse rows from a table
View View Data
Browse rows from a view
View Table Info
Show column metadata and row count
Run SQL Query
Execute an ad-hoc SQL query
Architecture
src/
├── extension.ts # Entry point — App class, command registration, dialogs
├── types/index.ts # TypeScript type definitions
├── vscode/kvStore.ts # VSCode globalState + SecretStorage adapters
├── connection/
│ ├── connectionStore.ts # Connection CRUD with secret storage
│ └── oracleManager.ts # oracledb pool management, queries, metadata
├── tree/
│ ├── treeItems.ts # Tree item classes for each node type
│ └── connectionTreeProvider.ts # Lazy-loading TreeDataProvider
├── query/
│ └── dataManager.ts # Coordinates queries → DataTab creation
└── webviews/
├── dataController.ts # Singleton webview panel (tab management)
└── dataHtml.ts # HTML/CSS/JS renderer for the data panel
Design: Extension host holds all state. The webview is a dumb renderer — re-fed full state on every change. Connection passwords are encrypted via VSCode SecretStorage (OS keychain).