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

# Oracle Database

> Sync data from Oracle Database instances

Sync data from Oracle Database instances.

<Tabs>
  <Tab title="Overview">
    Connect Parable to Oracle Financials Cloud (ERP) for financial and operational data.

    #### Financials

    General Ledger, Accounts Payable/Receivable

    #### Users & Security

    User profiles, roles, access

    ## Data streams

    This Provider Plugin defines 0 data streams.

    | Stream | Description                                       | Sync |
    | ------ | ------------------------------------------------- | ---- |
    | —      | No customer-selectable data streams are declared. | —    |
  </Tab>

  <Tab title="Setup Guide">
    ### Oracle Database

    #### What You'll Need

    | Credential       | What it is                                                             |
    | ---------------- | ---------------------------------------------------------------------- |
    | **Username**     | Oracle Cloud username                                                  |
    | **Password**     | Oracle Cloud password                                                  |
    | **Host**         | Oracle Cloud host (e.g., `fa-abcd-saasfaprod1.fa.ocs.oraclecloud.com`) |
    | **Port**         | Database port (e.g., `1521`)                                           |
    | **Service Name** | Oracle service name (e.g., `ORCL`)                                     |
    | **Base URL**     | Oracle REST API base URL                                               |

    > **Info:** **Setup access in Oracle Cloud.** These steps require **Administrator**, or a colleague with equivalent permissions who can create credentials for you.
    >
    > If that is not you, ask your Oracle Cloud administrator.

    * **Integration Specialist** or equivalent role
    * REST API access enabled for your instance
    * Understanding of Oracle Cloud data model

    #### Step 1: Identify Your Instance URL

    Your Oracle Cloud instance URL format:

    ```
    https://server-instance.fa.us6.oraclecloud.com
    ```

    Find this in your browser when logged into Oracle Cloud.

    #### Step 2: Create Integration User

    For best practices, create a dedicated integration user:

    1. Navigate to **Security Console** → **Users**
    2. Create a new user: `parable_integration`
    3. Assign required roles (see permissions below)

    #### Step 3: Assign Required Roles

    The integration user needs these roles:

    | Role                     | Purpose             |
    | ------------------------ | ------------------- |
    | `Financial Analyst`      | Read financial data |
    | `Integration Specialist` | API access          |
    | `Employee`               | Basic data access   |

    > **Warning:** Grant only the minimum roles required for your use case.

    #### Step 4: Note Your Credentials

    | Credential   | Value                                          |
    | ------------ | ---------------------------------------------- |
    | Username     | `parable_integration`                          |
    | Password     | (your secure password)                         |
    | Instance URL | `https://your-instance.fa.us6.oraclecloud.com` |

    #### Step 5: Enter values in the form

    1. Enter **Username**, **Password**, **Host**, **Port**, **Service Name**, and **Base URL** in the Provider form.
    2. Click **Save & test connection**.

    The API uses **Basic authentication**. Combine your credentials and Base64 encode them:

    ```
    username:password  →  Base64 encode  →  Authorization: Basic {encoded}
    ```

    ```bash cURL theme={null}
    # The -u flag handles Base64 encoding automatically
    curl -X GET "https://your-instance.fa.us6.oraclecloud.com/hcmRestApi/resources/11.13.18.05/emps?limit=5" \
      -u "your-email@company.com:YOUR_API_TOKEN" \
      -H "Content-Type: application/json"
    ```

    ```python Python theme={null}

    # Encode credentials
    credentials = "your-email@company.com:YOUR_API_TOKEN"
    encoded = base64.b64encode(credentials.encode()).decode()

    response = requests.get(
        "https://your-instance.fa.us6.oraclecloud.com/hcmRestApi/resources/11.13.18.05/emps?limit=5",
        headers={
            "Authorization": f"Basic {encoded}",
            "Content-Type": "application/json"
        }
    )
    print(response.json())
    ```

    > **Tip:** For Oracle, use your **email address** as the username and the **API token** as the password.

    > **Success:** **Success!** If you received a `200 OK` response with valid data, your credentials are configured correctly. You can now configure this Provider in Parable.
  </Tab>

  <Tab title="Permissions">
    This Provider Plugin does not declare any data streams.
  </Tab>

  <Tab title="Troubleshooting">
    | Service    | Base Path                 |
    | ---------- | ------------------------- |
    | HCM        | `/hcmRestApi/resources/`  |
    | Financials | `/fscmRestApi/resources/` |
    | ERP Common | `/erpRestApi/resources/`  |

    > **Tip:** **Rate Limits:** Oracle Cloud enforces rate limits of **varies by service; monitor response headers**.
    >
    > Parable handles rate limiting automatically with exponential backoff, but initial syncs of large datasets may take longer due to these limits.

    | Error                       | Meaning             | Solution                     |
    | --------------------------- | ------------------- | ---------------------------- |
    | `401 Unauthorized`          | Invalid credentials | Verify username and password |
    | `403 Forbidden`             | Missing role        | Add required role to user    |
    | `404 Not Found`             | Wrong endpoint      | Check API path and version   |
    | `500 Internal Server Error` | Server issue        | Contact Oracle support       |

    #### Common Issues

    #### User locked out

    After multiple failed attempts, accounts may lock. Use Oracle Security Console to unlock.

    #### API version mismatch

    Oracle Cloud APIs have version-specific paths. Verify you're using the correct version for your instance.

    **[Oracle REST API](https://docs.oracle.com/en/cloud/saas/financials/23a/farfa/)** — Financials REST API documentation
  </Tab>
</Tabs>
