Skip to content

Oracle

exportbadge

Introduced in v6.0

The Oracle backend is experimental and is subject to backwards incompatible changes.

ibis.memtable Support memtable

The Oracle backend supports memtables by constructing a string with the contents of the in-memory object. This will be very inefficient for medium to large in-memory tables. Please file an issue if you observe performance issues when using in-memory tables.

Install

Install ibis and dependencies for the Oracle backend:

pip install 'ibis-framework[oracle]'
conda install -c conda-forge ibis-oracle
mamba install -c conda-forge ibis-oracle

Connect

ibis.oracle.connect

con = ibis.oracle.connect(
    user="username",
    password="password",
    host="hostname",
    port=1521,
    database="database",
)

ibis.oracle.connect is a thin wrapper around ibis.backends.oracle.Backend.do_connect.

Connection Parameters

do_connect(*, user, password, host='localhost', port=1521, database='FREE', **_)

Create an Ibis client using the passed connection parameters.

Parameters:

Name Type Description Default
user str

Username

required
password str

Password

required
host str

Hostname

'localhost'
port int

Port

1521
database str | None

Database to connect to

'FREE'

ibis.connect URL format

In addition to ibis.oracle.connect, you can also connect to Oracle by passing a properly formatted Oracle connection URL to ibis.connect

con = ibis.connect(f"oracle://{user}:{password}@{host}:{port}/{database}")

Connecting to older Oracle databases

ibis uses the python-oracledb "thin client" to connect to Oracle databases. Because early versions of Oracle did not perform case-sensitive checks in passwords, some DBAs disable case sensitivity to avoid requiring users to update their passwords. If case-sensitive passwords are disabled, then Ibis will not be able to connect to the database.

To check if case-sensitivity is enforced you can run

show parameter sec_case_sensitive_logon;

If the returned value is FALSE then Ibis will not connect.

For more information, see this issue.


Last update: August 1, 2023