Oracle
Oracle is supported as a source database — the database LakeXpress extracts data from. It cannot be used as the LakeXpress DB.
Connection Parameters
| Parameter | Required | Description |
|---|---|---|
ds_type | Yes | Must be "oracle" |
auth_mode | Yes | Must be "classic" |
username | Yes | Oracle username |
password | Yes | Oracle password |
server | No | Hostname or IP (host is also accepted; default: localhost) |
port | No | Port (default: 1521) |
database | Yes | Service name (a SID is not accepted: LakeXpress connects with service_name) |
lib_dir | No | Client library directory (thick mode) |
use_adbc | No | Export through FastBCP's ADBC driver (default: false, FastBCP's native driver). Set at the same level as ds_type, not inside info. See ADBC Export |
Thin vs Thick Mode
Thin Mode (Recommended):
- No client libraries required
- Oracle 12.1+
- Omit
lib_dir
Thick Mode:
- Required for Oracle 11.2 and earlier
- Requires Oracle Instant Client
- Set
lib_dirto the Instant Client directory
Required Permissions
LakeXpress uses RowID-based parallel exports to read Oracle tables efficiently. The database user needs catalog access for metadata discovery (table structure, RowID ranges, and export method selection):
-- As Oracle DBA (e.g., sys as sysdba)
GRANT SELECT_CATALOG_ROLE TO your_username;
Example: Thin Mode
{
"oracle_prod": {
"ds_type": "oracle",
"auth_mode": "classic",
"info": {
"username": "$env{LX_ORACLE_USER}",
"password": "$env{LX_ORACLE_PASSWORD}",
"server": "oracle-prod.company.com",
"port": 1521,
"database": "PRODPDB"
}
}
}
Example: Thick Mode
{
"oracle_legacy": {
"ds_type": "oracle",
"auth_mode": "classic",
"info": {
"username": "$env{LX_ORACLE_USER}",
"password": "$env{LX_ORACLE_PASSWORD}",
"server": "oracle-11g.company.com",
"port": 1521,
"database": "LEGACY",
"lib_dir": "/opt/oracle/instantclient_19_8"
}
}
}
ADBC Export
With "use_adbc": true, FastBCP reads the source through the arpe.io ADBC driver for Oracle (connection type adbc_oracle) instead of its native ODP.NET driver. It needs no Oracle Instant Client, whatever lib_dir says: lib_dir only applies to LakeXpress's own connection. ADBC is not the default for Oracle yet: the driver writes NUMBER columns without precision as text, while the publish targets declare them decimal(38,18). Use it for sources without such columns, or exports you do not publish. The setting only changes the export: LakeXpress still discovers schemas and tables with its own driver. The run log shows the path once per run, e.g. Source extraction: adbc_oracle (ADBC).
{
"oracle_adbc": {
"ds_type": "oracle",
"auth_mode": "classic",
"use_adbc": true,
"info": {
"username": "$env{LX_ORA_USER}",
"password": "$env{LX_ORA_PASSWORD}",
"server": "oracle-prod.company.com",
"port": 1521,
"database": "ORCLPDB1"
}
}
}
Network encryption and data integrity default to accepted. To change them, set the FASTBCP_ADBC_ENCRYPTION and FASTBCP_ADBC_DATA_INTEGRITY environment variables before running LakeXpress.
The Parquet files written through ADBC differ from the native ones:
NUMBERwithout precision is text (the native driver writesdecimal(38,18)).NUMBER(p)withpup to 9 is a 64-bit integer (the native driver writes a 32-bit integer).TIMESTAMPkeeps microseconds (the native driver writes milliseconds).TIMESTAMP WITH TIME ZONEis a UTC timestamp (the native driver writes text such as1/1/1970 12:00:00 AM +00:00).DATEandTIMESTAMPbefore 1582-10-15, which Oracle stores on the Julian calendar, are converted to the same day on the Gregorian calendar:0001-01-01becomes0000-12-30. The native driver keeps the label, which is a different day.
The ADBC driver needs its own license. It is included in the license file that arpe.io sends for LakeXpress, and LakeXpress passes it to FastBCP. If your license file has no ADBC block, provide the driver license with ARPEIO_ADBC_LICENCE (license text) or ARPEIO_ADBC_LICENCE_FILE (path). Without either, the sync stops before the export with exit code 13 (LICENSE_ERROR). A license file issued before 2026-10-26 has no FastBCP block: FastBCP then uses its own FastBCP.lic, which must carry the ADBC block. See License Information.
ADBC drivers ship with FastBCP for linux-x64 and win-x64. See ADBC Extraction for the other sources.
Troubleshooting
ORA-12154: TNS could not resolve connect identifier:
Verify service name, check tnsnames.ora, try IP instead of hostname, confirm listener is running.
ORA-28000: account is locked:
ALTER USER your_username ACCOUNT UNLOCK;
Thick mode library not found:
Verify lib_dir path, confirm Instant Client is installed, check file permissions, set LD_LIBRARY_PATH on Linux.
See Also
- Database Connections OverviewCredentials file format, security best practices