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

# Oracle DB

> Learn how to connect to Oracle

Oracle DB is a relational database management system. In Prophecy, you can connect to Oracle to read from and write to database tables as part of your pipelines. This page explains how to set up the connection, including required parameters, permissions, and how connections are shared within teams.

## Prerequisites

Prophecy connects to Oracle using the database credentials you provide. These credentials are used to authenticate your session and authorize all data operations performed during pipeline execution. To use an Oracle connection effectively, your user account must have:

* Read access to query data from tables
* Write access to insert, update, or delete data

## Feature support

The table below outlines whether the connection supports certain Prophecy features.

| Feature                                                                                    | Supported |
| ------------------------------------------------------------------------------------------ | --------- |
| Read data with a [Source gem](/data-analysis/gems/source-target/external-table/oracle)     | Yes       |
| Write data with a Target gem                                                               | No        |
| Browse data in the [Environment browser](/data-analysis/development/studio/studio#sidebar) | Yes       |
| Index tables in the [Knowledge Graph](/data-analysis/ai/knowledge-graph/knowledge-graph)   | No        |

## Connection parameters

To create a connection with Oracle, enter the following parameters:

| Parameter                                                                | Description                                          |
| ------------------------------------------------------------------------ | ---------------------------------------------------- |
| Connection name                                                          | A name to identify your connection in Prophecy       |
| Server                                                                   | Hostname of the Oracle database server               |
| Port                                                                     | Port used by the Oracle database (default is `1521`) |
| Username                                                                 | Username for connecting to the Oracle database       |
| Database                                                                 | Oracle Service Name or SID of the target database    |
| Password ([Secret required](/data-analysis/environment/secrets/secrets)) | Password for the specified user                      |

## Data type mapping

When Prophecy processes data from Oracle using SQL warehouses, it converts Oracle-specific data types to formats compatible with your target warehouse. This table shows how [Oracle data types](https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/Data-Types.html) are transformed for Databricks, BigQuery, and Snowflake.

| Oracle                          | Databricks                          | BigQuery                                  | Snowflake                          |
| ------------------------------- | ----------------------------------- | ----------------------------------------- | ---------------------------------- |
| NUMBER                          | `decimal(38,5)`<br />Alias: Decimal | `bignumeric(38,5)`<br />Alias: BigNumeric | `number(38,10)`<br />Alias: Number |
| SMALLINT / INTEGER / NUMBER(38) | `bigint`<br />Alias: Bigint         | `int64`<br />Alias: Integer               | `number`<br />Alias: Number        |
| FLOAT                           | `double`<br />Alias: Double         | `float64`<br />Alias: Float               | `float`<br />Alias: Float          |
| REAL / FLOAT(63)                | `double`<br />Alias: Double         | `float64`<br />Alias: Float               | `float`<br />Alias: Float          |
| DOUBLE PRECISION / FLOAT(126)   | `double`<br />Alias: Double         | `float64`<br />Alias: Float               | `float`<br />Alias: Float          |
| BINARY\_FLOAT                   | `double`<br />Alias: Double         | `float64`<br />Alias: Float               | `float`<br />Alias: Float          |
| BINARY\_DOUBLE                  | `double`<br />Alias: Double         | `float64`<br />Alias: Float               | `float`<br />Alias: Float          |
| DECIMAL                         | `decimal(38,5)`<br />Alias: Decimal | `bignumeric(38,5)`<br />Alias: BigNumeric | `number(38,10)`<br />Alias: Number |
| NUMERIC                         | `decimal(38,5)`<br />Alias: Decimal | `bignumeric(38,5)`<br />Alias: BigNumeric | `number(38,10)`<br />Alias: Number |
| CHAR                            | `string`<br />Alias: String         | `string`<br />Alias: String               | `string`<br />Alias: String        |
| VARCHAR                         | `string`<br />Alias: String         | `string`<br />Alias: String               | `string`<br />Alias: String        |
| VARCHAR2                        | `string`<br />Alias: String         | `string`<br />Alias: String               | `string`<br />Alias: String        |
| NCHAR                           | `string`<br />Alias: String         | `string`<br />Alias: String               | `string`<br />Alias: String        |
| NVARCHAR2                       | `string`<br />Alias: String         | `string`<br />Alias: String               | `string`<br />Alias: String        |
| LONG                            | `string`<br />Alias: String         | `string`<br />Alias: String               | `string`<br />Alias: String        |
| CLOB                            | `string`<br />Alias: String         | `string`<br />Alias: String               | `string`<br />Alias: String        |
| NCLOB                           | `string`<br />Alias: String         | `string`<br />Alias: String               | `string`<br />Alias: String        |
| BLOB                            | `binary`<br />Alias: Binary         | `bytes`<br />Alias: Bytes                 | `binary`<br />Alias: Binary        |
| DATE                            | `timestamp`<br />Alias: Timestamp   | `timestamp`<br />Alias: Timestamp         | `timestamp`<br />Alias: Timestamp  |
| TIMESTAMP                       | `timestamp`<br />Alias: Timestamp   | `timestamp`<br />Alias: Timestamp         | `timestamp`<br />Alias: Timestamp  |
| TIMESTAMP WITH TIME ZONE        | `timestamp`<br />Alias: Timestamp   | `timestamp`<br />Alias: Timestamp         | `timestamp`<br />Alias: Timestamp  |
| TIMESTAMP WITH LOCAL TIME ZONE  | `timestamp`<br />Alias: Timestamp   | `timestamp`<br />Alias: Timestamp         | `timestamp`<br />Alias: Timestamp  |
| INTERVAL YEAR TO MONTH          | `string`<br />Alias: String         | `string`<br />Alias: String               | `string`<br />Alias: String        |
| INTERVAL DAY TO SECOND          | `string`<br />Alias: String         | `string`<br />Alias: String               | `string`<br />Alias: String        |
| RAW                             | `binary`<br />Alias: Binary         | `bytes`<br />Alias: Bytes                 | `binary`<br />Alias: Binary        |
| LONG RAW                        | `binary`<br />Alias: Binary         | `bytes`<br />Alias: Bytes                 | `binary`<br />Alias: Binary        |
| XMLType                         | `string`<br />Alias: String         | `string`<br />Alias: String               | `string`<br />Alias: String        |
| BOOLEAN                         | `boolean`<br />Alias: Boolean       | `bool`<br />Alias: Boolean                | `boolean`<br />Alias: Boolean      |
| URIType                         | `string`<br />Alias: String         | `string`<br />Alias: String               | `string`<br />Alias: String        |
| DBURIType                       | `string`<br />Alias: String         | `string`<br />Alias: String               | `string`<br />Alias: String        |
| XDBURIType                      | `string`<br />Alias: String         | `string`<br />Alias: String               | `string`<br />Alias: String        |
| HTTPURIType                     | `string`<br />Alias: String         | `string`<br />Alias: String               | `string`<br />Alias: String        |
| LongVarChar                     | `string`<br />Alias: String         | `string`<br />Alias: String               | `string`<br />Alias: String        |
| LongRaw                         | `binary`<br />Alias: Binary         | `bytes`<br />Alias: Bytes                 | `binary`<br />Alias: Binary        |

<Info>
  For Oracle `number` types with explicit precision and scale, Prophecy preserves those values when mapping to Snowflake. For example, Oracle `number(10,2)` maps to Snowflake `number(10,2)`.
</Info>

<Info>
  Learn more in [Supported data types](/data-analysis/gems/data-types).
</Info>

## Sharing connections within teams

Connections in Prophecy are stored within [fabrics](/data-analysis/environment/fabrics/prophecy-fabrics), which are assigned to specific teams. Once an Oracle connection is added to a fabric, all team members who have access to the fabric can use the connection in their projects. No additional authentication is required—team members automatically inherit the access and permissions of the stored connection credentials.

<Warning>
  Be mindful of the access level granted by the stored credentials. Anyone on the team will have the same permissions—including access to sensitive data if allowed.

  To manage this securely, consider creating a dedicated fabric and team for high-sensitivity connections. This way, only approved users have access to those credentials.
</Warning>
