JDBC Sink Connector — Oracle

Type

Sink

Class

io.aiven.connect.jdbc.JdbcSinkConnector

Target System

Database (Oracle)

Maintainer

Aiven

License

Apache License 2.0

Project

github.com/aiven/jdbc-connector-for-apache-kafka

Download

Maven Central

This page documents version 6.12.0. Newer versions should be compatible unless there are breaking changes, but field names or default values may differ. If you notice discrepancies, please contact Axual Support.

The JDBC Oracle connector requires the Oracle JDBC driver to be placed in the connector’s plugin directory. Select the JAR matching your Java runtime version: ojdbc8.jar for Java 8, ojdbc11.jar for Java 11, or ojdbc17.jar for Java 17+. The driver must be obtained separately from the Oracle JDBC Downloads page.

Description

The JDBC Sink Connector for Oracle consumes records from Kafka topics and writes them to Oracle tables using JDBC.

It is maintained by Aiven as part of the open-source github.com/aiven/jdbc-connector-for-apache-kafka.

Features

  • Write Kafka records to Oracle tables via JDBC

  • Supports INSERT, UPSERT, and UPDATE write modes

  • Auto-creates target tables based on the record schema (when enabled)

  • Schema-aware: works with JSON (with schema) and Avro converters

When to Use

  • You need to write Kafka records into an Oracle database table.

  • You are building a pipeline where Oracle is the final destination.

When NOT to Use

  • You need bidirectional sync — this connector is sink only.

  • Your records do not carry a schema — enable value.converter.schemas.enable=true on the source side.

Installation

The connector is available from the Maven Central.

  1. Navigate to the releases page and select the version matching your Kafka Connect installation.

  2. Download the JAR file.

  3. Download the Oracle JDBC driver (ojdbc8.jar for Java 8, ojdbc11.jar for Java 11, or ojdbc17.jar for Java 17+) from the Oracle JDBC Downloads page and add it to the connector plugin directory.

For installation steps, see Installing Connector Plugins.

Configuration

For the complete configuration reference, see the official sink connector documentation.

To configure a connector in Axual Self-Service, see Starting Connectors.

Getting Started

Prerequisites

Oracle Database instance

You need a running Oracle Database instance reachable from the Kafka Connect cluster, with the target table already created (or auto.create=true enabled in the connector config).

Axual stream with records

The stream this connector consumes must already exist and contain records with a schema. See Creating streams if you need to create a stream, and Produce some data to produce test events.

Steps

Step 1 — Create a connector application

  1. Follow the Configure and install a connector documentation to set up a new Connector-Application.
    Let’s call it my.oracle.sink.
    The plugin name is io.aiven.connect.jdbc.JdbcSinkConnector.
    If a plugin isn’t available, ask a platform operator to install plugins.

Step 2 — Configure the connector

  1. Provide the following minimal configuration:

    connector.class

    io.aiven.connect.jdbc.JdbcSinkConnector

    connection.url

    jdbc:oracle:thin:@//123.123.123.123:1521/ORCLPDB1
    Replace with your Oracle host and service name.

    connection.user

    system

    connection.password

    Your database password

    topics

    Your Axual stream name

    insert.mode

    insert

    auto.create

    false

    value.converter

    org.apache.kafka.connect.json.JsonConverter

    value.converter.schemas.enable

    true

    For advanced options, see the official sink connector documentation.

  2. Authorize the my.oracle.sink sink Connector-Application to consume the oracle_EMPLOYEES_sink stream.

Step 3 — Start the connector

Start the connector application from Axual Self-Service.

Step 4 — Verify

Query the target Oracle table to confirm rows are being written as records arrive on the stream.

Cleanup

When you are done:

  1. Stop the connector application in Axual Self-Service.

  2. Remove stream access for the application if no longer needed.

Known limitations

  • The Oracle JDBC driver must be manually provided — it is not bundled with the connector. Use ojdbc8.jar for Java 8, ojdbc11.jar for Java 11, or ojdbc17.jar for Java 17+.

  • Schema evolution requires manual DDL changes in Oracle when auto.evolve=false (the default).

  • Records must carry a schema — the connector cannot infer column mappings from schema-less JSON.

Examples

Minimal configuration

{
  "name": "my-jdbc-oracle-sink",
  "config": {
    "connector.class": "io.aiven.connect.jdbc.JdbcSinkConnector",
    "connection.url": "jdbc:oracle:thin:@//oracle.example.com:1521/ORCLPDB1",
    "connection.user": "system",
    "connection.password": "<your-database-password>",
    "topics": "<your-axual-stream-name>",
    "insert.mode": "insert",
    "auto.create": "false",
    "value.converter": "org.apache.kafka.connect.json.JsonConverter",
    "value.converter.schemas.enable": "true"
  }
}

License

Oracle JDBC Connector is licensed under the Apache License, Version 2.0.