Oracle connection#

class onetl.connection.db_connection.oracle.connection.Oracle(*, spark: SparkSession, user: str, password: SecretStr, host: Host, port: int = 1521, sid: str | None = None, service_name: str | None = None, extra: OracleExtra = OracleExtra())#

Oracle JDBC connection. support_hooks

Based on Maven package com.oracle.database.jdbc:ojdbc8:23.2.0.0 (official Oracle JDBC driver).

Warning

Before using this connector please take into account Prerequisites

Parameters:
hoststr

Host of Oracle database. For example: test.oracle.domain.com or 193.168.1.10

portint, default: 1521

Port of Oracle database

userstr

User, which have proper access to the database. For example: SOME_USER

passwordstr

Password for database connection

sidstr, default: None

Sid of oracle database. For example: XE

Warning

You should provide either sid or service_name, not both of them

service_namestr, default: None

Specifies one or more names by which clients can connect to the instance.

For example: PDB1.

Warning

You should provide either sid or service_name, not both of them

sparkpyspark.sql.SparkSession

Spark session.

extradict, default: None

Specifies one or more extra parameters by which clients can connect to the instance.

For example: {"remarksReporting": "false"}

See official documentation:

Examples

Connect to Oracle using sid:

from onetl.connection import Oracle
from pyspark.sql import SparkSession

# Create Spark session with Oracle driver loaded
maven_packages = Oracle.get_packages()
spark = (
    SparkSession.builder.appName("spark-app-name")
    .config("spark.jars.packages", ",".join(maven_packages))
    .getOrCreate()
)

# Create connection
oracle = Oracle(
    host="database.host.or.ip",
    user="user",
    password="*****",
    sid="XE",
    extra={"remarksReporting": "false"},
    spark=spark,
)

Using service_name:

...

oracle = Oracle(
    host="database.host.or.ip",
    user="user",
    password="*****",
    service_name="PDB1",
    extra={"remarksReporting": "false"},
    spark=spark,
)
check()#

Check source availability. support_hooks

If not, an exception will be raised.

Returns:
Connection itself
Raises:
RuntimeError

If the connection is not available

Examples

connection.check()
classmethod get_packages(java_version: str | Version | None = None) list[str]#

Get package names to be downloaded by Spark. support_hooks

Parameters:
java_versionstr, default 8

Java major version.

Examples

from onetl.connection import Oracle

Oracle.get_packages()
Oracle.get_packages(java_version="8")