# Oracle

### Connection configuration reference

{% hint style="warning" %}
Connecting to Oracle requires having installed the `soda-oracle` package using the [Private PyPi installation flow](https://docs.soda.io/deployment-options/soda-python-libraries#private-pypi-installation-flow) available wtih Entreprise license, unless you are using a Runner.

Need access to the private PyPI? Please [contact us](mailto:support@soda.io).
{% endhint %}

Install the following package:

{% code overflow="wrap" %}

```bash
pip install --pre -U "soda-oracle>4" -i "https://${SODA_CLOUD_API_KEY_ID}:${SODA_CLOUD_API_KEY_SECRET}@enterprise.pypi.us.soda.io/simple
```

{% endcode %}

The package must be installed from Soda's private enterprise pypi server using [Soda Cloud API keys](https://docs.soda.io/reference/generate-api-keys) from an organization with an Enterprise license.

#### Data source YAML

**Create the config file:**

```shellscript
soda data-source create -f ds_config.yml
```

The data source configuration YAML should look like the following:

{% code title="ds\_config.yml" %}

```yaml
type: oracle
name: my_oracle
connection:
  user: system
  password: ${env.ORACLE_PASSWORD}
  host: oracle.databases
  port: 1521
  service_name: SODA
```

{% endcode %}

{% hint style="info" %}
**Note: Oracle Client Libraries must be available to connect to Oracle via Soda Core. You should install the appropriate Oracle Instant Client and make sure that the libraries are accessible, e.g.,:**

```
export PATH=$PATH:/Users/adkinsty/Downloads/instantclient_23_3
export DYLD_FALLBACK_LIBRARY_PATH="/usr/local/lib:~/Downloads/instantclient_23_3:~/lib"
```

{% endhint %}

#### Connection test

Test the data source connection:

```bash
soda data-source test -ds ds_config.yml
```

***

{% hint style="warning" %}
**Text truncation in Diagnostics Warehouse**

When using **Oracle** as your Diagnostics Warehouse target, **large text values may be truncated** (4,000 char limit) **or produce hashing collisions** when stored in Soda result tables.

> To learn more, go to [limitations & edge cases](https://docs.soda.io/reference/data-source-reference-for-soda-core/broken-reference) in Diagnostics Warehouse data sources.
> {% endhint %}

<br>

***

{% if (visitor.claims.plan === 'datasetStandard')%}
{% hint style="success" %}
You are **logged in to Soda** and seeing the **Free license** documentation. Learn more about [documentation-access-and-licensing](https://docs.soda.io/reference/documentation-access-and-licensing "mention").
{% endhint %}
{% endif %}

{% if (visitor.claims.plan === 'enterprise')%}
{% hint style="success" %}
You are **logged in to Soda** and seeing the **Team license** documentation. Learn more about [documentation-access-and-licensing](https://docs.soda.io/reference/documentation-access-and-licensing "mention").
{% endhint %}
{% endif %}

{% if (visitor.claims.plan === 'enterpriseUserBased')%}
{% hint style="success" %}
You are **logged in to Soda** and seeing the **Enterprise license** documentation. Learn more about [documentation-access-and-licensing](https://docs.soda.io/reference/documentation-access-and-licensing "mention").
{% endhint %}
{% endif %}

{% if !(visitor.claims.plan === 'enterprise' || visitor.claims.plan === 'enterpriseUserBased' || visitor.claims.plan === 'datasetStandard')%}
{% hint style="info" %}
You are **not logged in to Soda** and are viewing the default public documentation. Learn more about [documentation-access-and-licensing](https://docs.soda.io/reference/documentation-access-and-licensing "mention").
{% endhint %}
{% endif %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.soda.io/reference/data-source-reference-for-soda-core/oracle.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
