Skip to the page
Get started

Docs · Connecting to data

Oracle

Easy Connect, services, Thick mode, and what happens when a collection supplies the service.

Oracle connects by host, port and service rather than by database name. Default port 1521.

#Connection

FieldDefaultNotes
Host—
Port1521
Service—"The service the listener registers — XEPDB1, ORCLPDB."
Table—Optional — see SQL databases
Username—
Password—
Use Oracle Thick modeOff
Instant Client path—Only shown when Thick mode is on

#Service, and how a collection changes it

The Service field says three different things depending on the situation, and it is worth knowing which you are looking at.

Normally it is just the service the listener registers.

When a collection is attached and supplies a service, and this field is blank:

Optional — the attached collection supplies XEPDB1 on port 1521. Set one here only to point this data source at a different service.

And when you have set one anyway:

This overrides the service on the attached collection. Clear it to use the collection's.

That is the design: the machines differ across an estate, the port and the service usually do not, so the collection carries them once.

#Thick mode

Off by default, and it should stay off unless you need it:

Only needed for wallets or external authentication. Requires an Instant Client.

Turning it on reveals Instant Client path, which points at the Instant Client directory on the machine running Mosaic.

#TNS aliases

A source may name an entry in a tnsnames.ora instead of a machine. Where that is the case, the connection fields are empty and a TNS alias field appears, explaining itself:

This source names an entry in a tnsnames.ora rather than a machine, which is why the fields above are empty. Fill them in and the alias is no longer used.

Nothing creates one now — this is here for sources configured before Easy Connect became the way in.

#Table names

Oracle folds unquoted identifiers to upper case. SALES and sales reach the same table; "Sales" does not. When a table that plainly exists is not found, check the case first.

The generated query for a named table uses WHERE ROWNUM <= … rather than LIMIT.