Documentation Index
Fetch the complete documentation index at: https://ngquct-feat-1048-apple-intelligence-transport.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Oracle Database Connections
TablePro supports Oracle Database 11.1 and later. It speaks the Oracle TNS wire protocol directly in Swift, so no Oracle Instant Client or other external library is required. This covers Oracle Database instances running on-premises, in Docker, or Oracle Cloud.Oracle 10g and earlier are not supported: they use the older O3LOGON handshake that the pure-Swift driver does not implement. Servers that require Native Network Encryption also need Oracle’s OCI client (use TLS instead).
Install Plugin
The Oracle driver is available as a downloadable plugin. When you select Oracle in the connection form, TablePro will prompt you to install it automatically. You can also install it manually:- Open Settings > Plugins > Browse
- Find Oracle Driver and click Install
- The plugin downloads and loads immediately - no restart needed
Quick Setup
Connection Settings
| Field | Default | Notes |
|---|---|---|
| Host | localhost | |
| Port | 1521 | Listener port |
| Service Name | - | Required. Check tnsnames.ora if unclear. To connect by SID instead, set Connection Type to SID and enter the SID. |
| Username | - | Requires username/password auth (no OS auth) |
Example Configurations
Local (Oracle XE): hostlocalhost:1521, user system, service XEPDB1
Docker: gvenzl/oracle-xe:21-slim image, same config as local
Remote: Standard host/port/credentials, service name from DBA
Oracle Cloud (ADB): Port 1522, service name format mydb_tp, requires TLS wallet download from Oracle Cloud Console
SSL/TLS: OracleNIO has no TLS fallback. Preferred connects in plain TCP (the SSL pane shows a warning). Use Required for TCPS to Oracle Autonomous Database, Verify CA with a CA certificate path for strict validation. See SSL/TLS for details.
Connection URL
Features
Schema Selection: Each user is a schema. Switch with ⌘K. Shows available schemas and objects. Table Info: Structure (columns, types, nullability, defaults), indexes (B-tree, bitmap), foreign keys, DDL via DBMS_METADATA. Query Editor: SQL/PL/SQL support. Pagination uses OFFSET/FETCH syntax:SELECT c.constraint_name FROM all_constraints c WHERE constraint_type = 'R' AND owner = 'HR'
Authentication: Username/password only (no OS auth or wallet). Create user: CREATE USER app_user IDENTIFIED BY "Password1!"; GRANT CREATE SESSION, SELECT ANY TABLE TO app_user;
Auth Compatibility
TablePro authenticates viaOracleNIO, a pure-Swift implementation of the Oracle TNS wire protocol (no Oracle Instant Client needed).
dba_users.password_versions | Status |
|---|---|
12C only (recommended) | ✓ Supported |
11G 12C | ✓ Supported |
10G 11G 12C | ✓ Supported |
10G 11G (legacy migration) | ✓ Supported |
10G only (deprecated) | ✓ Supported, but consider rotation |
| External / Kerberos / LDAP-managed | ✗ Not supported. File an issue. |
password_versions contains only 11G or 12C:
password_versions first. “Server Version Not Supported” means the database is older than 11.1 (10g or earlier), which the driver cannot connect to.
Column Type Support
| Oracle type | Display |
|---|---|
| VARCHAR2, NVARCHAR2, CHAR, NCHAR, LONG, CLOB, NCLOB, JSON | Text as stored |
| NUMBER | Exact integer up to Int64 range; decimals up to 17 digits of precision |
| BINARY_FLOAT, BINARY_DOUBLE | Native Swift Float/Double |
| DATE | yyyy-MM-dd |
| TIMESTAMP | ISO-8601 in UTC with fractional seconds |
| TIMESTAMP WITH TIME ZONE | ISO-8601 in the host’s local time zone with explicit offset |
| TIMESTAMP WITH LOCAL TIME ZONE | ISO-8601 in the host’s local time zone with explicit offset |
| INTERVAL DAY TO SECOND | D HH:MM:SS plus fractional seconds when non-zero (up to 9 digits, trailing zeros trimmed) |
| INTERVAL YEAR TO MONTH | Y-MM |
| RAW, LONG RAW, BLOB | Lowercase hex, truncated to 4 KB |
| ROWID | As stored |
| BOOLEAN | true / false |
| BFILE | <bfile> placeholder (locator only) |
<unsupported: type> rather than crashing or corrupting data. Report unsupported types via GitHub Issues.
Troubleshooting
Connection refused: Check listener running (lsnrctl status), verify port 1521 open, if Docker check docker start oracle-xe
Invalid service name: Verify service exists: SELECT value FROM v$parameter WHERE name = 'service_names'; List services: lsnrctl services
Instant Client not found: Download Basic package, extract to /usr/local/oracle/instantclient, set DYLD_LIBRARY_PATH
Limitations: Username/password only, BFILE shows locator metadata only (content fetch via DBMS_LOB not supported), PL/SQL limited to anonymous blocks.