Skip to content

Oracle🔗

Supported drivers:

dbapi default driver connection class
cx_Oracle 👍 oracle+cx_Oracle cx_Oracle.Connection
oracledb 👎 oracle+oracledb oracledb.Connection

cx_Oracle🔗

cx_Oracle is the default dbapi driver for Oracle in pydapper.

Installation🔗

pip install pydapper[cx_Oracle]
poetry add pydapper -E cx_Oracle

DSN format🔗

dsn = f"oracle+cx_Oracle://{user}:{password}@{host}:{port}/{servicename}"
dsn = "oracle+cx_Oracle://myuser:mypassword:1521@localhost/myservicename"
dsn = "oracle://myuser:mypassword:1521@localhost/myservicename"

Note

You connect to cx_Oracle in pydapper using service names

Example - connect🔗

Please see the cx_Oracle docs for a full description of context manager behavior.

import pydapper

with pydapper.connect("oracle+cx_Oracle://pydapper:pydapper@localhost:1522/pydapper") as commands:
    print(type(commands))
    # <class 'pydapper.oracle.cx_Oracle.CxOracleCommands'>

    print(type(commands.connection))
    # <class 'cx_Oracle.Connection'>

    with commands.cursor() as raw_cursor:
        print(type(raw_cursor))
        # <class 'cx_Oracle.Cursor'>

Example - using🔗

Use pydapper with a cx_Oracle connection pool.

from cx_Oracle import SessionPool

import pydapper

my_pool = SessionPool(user="pydapper", password="pydapper", dsn="localhost:1522/pydapper")


commands = pydapper.using(my_pool.acquire())
print(type(commands))
# <class 'pydapper.oracle.cx_Oracle.CxOracleCommands'>

print(type(commands.connection))
# <class 'cx_Oracle.Connection'>

my_pool.release(commands.connection)

oracledb🔗

Installation🔗

pip install pydapper[oracledb]
poetry add pydapper -E oracledb

DSN format🔗

dsn = f"oracle+oracledb://{user}:{password}@{host}:{port}/{servicename}"
dsn = "oracle+oracledb://myuser:mypassword:1521@localhost/myservicename"

Note

You connect to oracledb in pydapper using service names

Example - connect🔗

Please see the oracledb docs for a full description of context manager behavior.

import pydapper

with pydapper.connect("oracle+oracledb://pydapper:pydapper@localhost:1522/pydapper") as commands:
    print(type(commands))
    # <class 'pydapper.oracle.oracledb.OracledbCommands'>

    print(type(commands.connection))
    # <class 'oracledb.Connection'>

    with commands.cursor() as raw_cursor:
        print(type(raw_cursor))
        # <class 'oracledb.Cursor'>

Example - using🔗

Use pydapper with a oracledb connection pool.

from oracledb import create_pool

import pydapper

my_pool = create_pool(user="pydapper", password="pydapper", dsn="localhost:1522/pydapper")


commands = pydapper.using(my_pool.acquire())
print(type(commands))
# <class 'pydapper.oracle.oracledb.OracledbCommands'>

print(type(commands.connection))
# <class 'oracledb.Connection'>

my_pool.release(commands.connection)