> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rwsintegration.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Databases (JDBC)

> Extract data from any JDBC-compatible database through RWS Connect

Some data only exists inside a database: an on-premise ERP's SQL Server, an Oracle instance behind a VPN, a PostgreSQL read replica with no API in front of it. Database sources are served by **RWS Connect**: we build a managed pipeline that extracts from your database and exposes it through the **RWS Connect API**, a simple REST API that your integrations extract from like any other modern API.

## Supported databases

Any JDBC-compatible database. Common examples:

* SQL Server
* Oracle
* PostgreSQL
* MySQL / MariaDB
* IBM DB2
* Firebird
* Sybase

If your database speaks JDBC, RWS Connect can extract from it.

## When to use

* The system holds its data in a database but exposes no API
* You have (or can create) a read-only user or a read replica
* The database sits on-premise or behind a VPN
* The data you need is the result of a SQL query across several tables

## How it works

1. **RWS Connect connects to your database** over JDBC, through a [VPN](/en/features/connections/vpn) when needed
2. **The pipeline runs the agreed queries** on the agreed schedule and writes the results to structured tables
3. **Your integration extracts the tables** through the RWS Connect API, like any other REST source

Everything the platform offers for API extractions works unchanged: [pagination](/en/features/extract/pagination), [dynamic parameters](/en/features/extract/dynamic-parameters), [business rules](/en/features/business-rules/overview) and [scheduling](/en/features/extract/scheduling).

## What you provide

| Item               | Details                                                                                                                                                         |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Database engine    | Engine and version (SQL Server, Oracle, PostgreSQL, and so on)                                                                                                  |
| Connection details | Host, port and database name                                                                                                                                    |
| Credentials        | A user with read access to the tables you need                                                                                                                  |
| Network access     | [VPN configuration](/en/features/connections/vpn) or [IP allowlisting](/en/features/connections/vpn#ip-allowlisting), if the database is not publicly reachable |
| Tables or queries  | The tables to extract, or the SQL queries whose results you need                                                                                                |
| Incremental column | Optional: a date or sequence column we can use to extract only new or changed rows                                                                              |
| Update cadence     | How often the data should be refreshed                                                                                                                          |
| Table name         | The name you want for each resulting table                                                                                                                      |

<Tip>
  A dedicated read-only user is recommended. The pipeline only ever reads.
</Tip>

## Requesting the connector

Email [connect@rwsintegration.com](mailto:connect@rwsintegration.com) with the items above to open a ticket.

<Info>
  Your tables are ready within **two business days** (SLA) after access and the information above are provided. If access requires a VPN, [VPN setup](/en/features/connections/vpn) takes an additional two business days before the pipeline is built.
</Info>

## How your data appears

* One table per source table or query, named as agreed in the ticket
* Columns in `snake_case`
* When the pipeline joins several source tables into one dataset, each column is prefixed with the table it came from, and every record is delivered as a single flat JSON object (see [Column prefixes](/en/features/extract/connect-api#column-prefixes))
* Every run adds a snapshot stamped with the extraction date, so history is preserved
* Standard columns on every table: `extracted_at`, `extraction_date`, `extract_start_date_parameter`, `extract_end_date_parameter`

## Next steps

<CardGroup cols={2}>
  <Card title="RWS Connect" icon="plug-circle-bolt" href="/en/core-concepts/rws-connect">
    Understand how RWS Connect works
  </Card>

  <Card title="Querying the RWS Connect API" icon="magnifying-glass" href="/en/features/extract/connect-api">
    Filters, aggregations, pagination and more
  </Card>
</CardGroup>
