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

# OracleDB

> Build apps with read and write access to an Oracle database

export const IntegrationSuccess = ({integrationName}) => {
  return <p>
      <b>{integrationName} connected!</b><br />You can now use{" "}
      <a href="/building-with-clark">Clark to build</a> with {integrationName}.
    </p>;
};

export const Alert = ({type, title, children}) => {
  const getIcon = () => {
    switch (type) {
      case 'info':
        return "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0zm0 15c-.552 0-1-.448-1-1s.448-1 1-1 1 .448 1 1-.448 1-1 1zm1-3H9V6h2v6z' fill='%230099FF'/%3E%3C/svg%3E";
      case 'success':
        return "data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0zm4.293 6.293L9 11.586 5.707 8.293c-.391-.391-1.024-.391-1.414 0s-.391 1.024 0 1.414l4 4c.391.391 1.024.391 1.414 0l6-6c.391-.391.391-1.024 0-1.414s-1.024-.391-1.414 0z' fill='%230CC26D'/%3E%3C/svg%3E";
      case 'warning':
        return "data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbDpzcGFjZT0ncHJlc2VydmUnIHdpZHRoPScxMDgwJyBoZWlnaHQ9JzEwODAnPjxyZWN0IHdpZHRoPScxMDAlJyBoZWlnaHQ9JzEwMCUnIGZpbGw9J3RyYW5zcGFyZW50Jy8+PHBhdGggZD0nTTEzLjc5NCAxMC43NSA4LjMgMS4yNWExLjUgMS41IDAgMCAwLTIuNiAwbC01LjQ5NCA5LjVBMS40OTQgMS40OTQgMCAwIDAgMS41IDEzaDExYTEuNDkzIDEuNDkzIDAgMCAwIDEuMjk0LTIuMjVNNi41IDUuNWEuNS41IDAgMCAxIDEgMFY4YS41LjUgMCAwIDEtMSAwek03IDExYS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNScgc3R5bGU9J3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7ZmlsbDojZmY5ZjM1O2ZpbGwtcnVsZTpub256ZXJvO29wYWNpdHk6MScgdHJhbnNmb3JtPSd0cmFuc2xhdGUoLjAyIDE5LjMwNSlzY2FsZSg3Ny4xNCknLz48L3N2Zz4=";
      case 'danger':
        return "data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0zm5.707 4.293L10 9.586 4.293 4.293c-.391-.391-1.024-.391-1.414 0s-.391 1.024 0 1.414L8.586 11l-5.707 5.293c-.391.391-.391 1.024 0 1.414s1.024.391 1.414 0L10 12.414l5.707 5.293c.391.391 1.024.391 1.414 0s.391-1.024 0-1.414L11.414 11l5.707-5.293c.391-.391.391-1.024 0-1.414s-1.024-.391-1.414 0z' fill='%23F45252'/%3E%3C/svg%3E";
      case 'note':
        return "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0zm0 15c-.552 0-1-.448-1-1s.448-1 1-1 1 .448 1 1-.448 1-1 1zm1-3H9V6h2v6z' fill='%230099FF'/%3E%3C/svg%3E";
      default:
        return "";
    }
  };
  return <div className={`alert alert--${type}`}>
      <div className="alert-icon" style={{
    backgroundImage: `url("${getIcon()}")`,
    backgroundRepeat: 'no-repeat',
    backgroundPosition: 'center center',
    backgroundSize: '20px',
    width: '24px',
    height: '24px',
    position: 'absolute',
    left: '16px',
    top: '16px'
  }} />
      <div className="alert-content">
        {title && <div className="alert-title">{title}</div>}
        <div className="alert-body">{children}</div>
      </div>
    </div>;
};

Oracle Database is a powerful, enterprise-grade relational database management system known for its scalability, reliability, and comprehensive feature set. Integrate OracleDB with Superblocks to build internal tools and workflows that query, analyze, and update your Oracle data, enabling your team to automate processes and accelerate decision-making.

## Setting up OracleDB

<Alert type="info">
  <p>
    If you're using Superblocks Cloud, you may need to allowlist Superblocks IP addresses to connect to your database.
    Configure your Oracle network access rules to allow connections from <a href="/enterprise/security/overview#ip-addresses">Superblocks IP addresses</a>.
    Alternatively, use Superblocks Hybrid or Cloud-Prem architectures to keep your data within your VPC.
  </p>
</Alert>

### 1. Add integration

Select **OracleDB** from the [integrations page](https://app.superblocks.com/integrations/oracledb).

### 2. Configure settings

Connect using either a form or a connection string.

<Tabs>
  <Tab title="Form">
    <br />Fill out the form with the following settings:

    | Setting                           | Required                                   | Description                                                                                       |
    | --------------------------------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------- |
    | Name                              | <span className="table-checkmark">✓</span> | Name that will be displayed to users when selecting this integration in Superblocks               |
    | Host                              | <span className="table-checkmark">✓</span> | Hostname or IP address of the Oracle database server                                              |
    | Port                              | <span className="table-checkmark">✓</span> | Port to use when connecting to Oracle (default: `1521`)                                           |
    | Service Name                      | <span className="table-checkmark">✓</span> | Oracle service name to connect to                                                                 |
    | Database Username                 | <span className="table-checkmark">✓</span> | Username to use to connect                                                                        |
    | Database Password                 | <span className="table-checkmark">✓</span> | Password for database username                                                                    |
    | Enable SSL                        | <span className="table-x">✗</span>         | Connect using SSL/TLS encryption                                                                  |
    | Use a self-signed SSL certificate | <span className="table-x">✗</span>         | Provide <strong>Server CA</strong>, <strong>Client Key</strong>, and <strong>Client Cert</strong> |
  </Tab>

  <Tab title="Connection string">
    <br />Provide an Oracle connection string. Superblocks supports multiple formats:

    **Easy Connect format:**

    ```
    host[:port]/service_name
    ```

    **TNS connect descriptor format:**

    ```
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hostname)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=service_name)))
    ```
  </Tab>
</Tabs>

### 3. Test and save

Click **Test Connection** to check that Superblocks can connect to the data source.

After connecting successfully, click **Create** to save the integration.

### 4. Set data tags

Optionally, configure different data tags for [separate development environments](/development-lifecycle/build/data-tags).

<Alert type="success">
  <IntegrationSuccess integrationName="OracleDB" />
</Alert>

## Using OracleDB in APIs

Once your OracleDB integration is created, you can start using it by writing SQL in Superblocks APIs. Use standard Oracle SQL syntax for all your queries, including support for PL/SQL blocks.

## Troubleshooting

If you run into issues, first see our guide on [Troubleshooting Database Integrations](/integrations/troubleshooting/troubleshooting-databases).

There are also several common errors you may see when using OracleDB:

| Error message                                                       | Why it's happening & Resolution                                                                                                                                                                                                   |
| ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ORA-12154: TNS:could not resolve the connect identifier specified` | **Reason**<br />The service name or connect identifier cannot be found.<br /><br />**Resolution**<br />Verify the service name is correct and that the Oracle listener is configured properly.                                    |
| `ORA-12541: TNS:no listener`                                        | **Reason**<br />The Oracle listener is not running on the specified host and port.<br /><br />**Resolution**<br />Verify the host and port are correct, and ensure the Oracle listener service is running on the database server. |
| `ORA-01017: invalid username/password; logon denied`                | **Reason**<br />The username or password provided is incorrect.<br /><br />**Resolution**<br />Verify your credentials are correct. Note that Oracle passwords are case-sensitive.                                                |
| `ORA-28000: the account is locked`                                  | **Reason**<br />The database user account has been locked due to too many failed login attempts or administrative action.<br /><br />**Resolution**<br />Contact your database administrator to unlock the account.               |

If you are encountering an error that's not listed, or the provided steps are insufficient to resolve the error, please contact us at <a href="mailto:support@superblocks.com">[support@superblocks.com](mailto:support@superblocks.com)</a>
