Skip to content

Conversation

@sudarshan12s
Copy link

@sudarshan12s sudarshan12s commented Sep 5, 2025

This pull request adds documentation for the Oracle Database in n8n Node.
It includes documentation for

  • credentials
  • Operation modes; execute, insert, select, update, upsert and deleteTable/Rows

Documentation additions:

  • docs/integrations/builtin/app-nodes/n8n-nodes-base.oracledb/index.md
    Added comprehensive documentation for the Oracle Database node operations.

Credentials update:

  • docs/integrations/builtin/credentials/oracledb.md
    Added details on the credential parameters .

Related node PR

@netlify
Copy link

netlify bot commented Sep 5, 2025

Deploy Preview for n8n-docs ready!

Name Link
🔨 Latest commit 4a3cc77
🔍 Latest deploy log https://app.netlify.com/projects/n8n-docs/deploys/68fb190b55c262000804dfb2
😎 Deploy Preview https://deploy-preview-3627--n8n-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@CLAassistant
Copy link

CLAassistant commented Sep 5, 2025

CLA assistant check
All committers have signed the CLA.

@sudarshan12s sudarshan12s marked this pull request as ready for review September 8, 2025 13:56
@imchairmanm imchairmanm added the pending-dev Blocked pending merge of related dev PR label Sep 11, 2025
@github-actions
Copy link

Thanks @sudarshan12s! We'll hold off on reviewing this until the PR is ready to go in the main repo.

@cursor
Copy link

cursor bot commented Oct 17, 2025

You have run out of free Bugbot PR reviews for this billing cycle. This will reset on November 5.

To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

@sudarshan12s
Copy link
Author

sudarshan12s commented Oct 17, 2025

The code PR is merged now, Can you please take a look and share your feedback.

Thanks.

@sudarshan12s
Copy link
Author

@imchairmanm , Now the code PR is merged, Can you review and let me know your feedback.

Thanks.


# Oracle Database node

Use the Oracle Database node to automate work in Oracle Database, and integrate Oracle Database with other applications. n8n has built-in support for a wide range of Oracle Database features, including executing an SQL query, as well as inserting, and updating rows in a database.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps add the Oracle Database and Oracle Client versions supported here.


# Oracle Database node

Use the Oracle Database node to automate work in Oracle Database, and integrate Oracle Database with other applications. n8n has built-in support for a wide range of Oracle Database features, including executing an SQL query, as well as inserting, and updating rows in a database.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...which includes executing an SQL query, fetching, inserting, updating or deleting data from Oracle Database.


#### Delete options

- **Auto Commit**: Whether this property is true, then the transaction in the current connection is automatically committed at the end of statement execution.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When this property is set to true, the transaction in the current connection is automatically committed at the end of statement execution.


#### Execute Statement options

- **Auto Commit**: Whether this property is true, then the transaction in the current connection is automatically committed at the end of statement execution.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When this property is set to true, the transaction in the current connection is automatically committed at the end of statement execution.


- **Auto Commit**: Whether this property is true, then the transaction in the current connection is automatically committed at the end of statement execution.
- **Bind Variable Placeholder Values**: Enter the values for the bind parameters used in the statement [Use bind parameters](#use-bind-parameters).
- **Output Numbers As String**: Whether the numbers should be retrieved as string.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indicates if the numbers should be retrieved as a String.


#### Insert options

- **Auto Commit**: Whether this property is true, then the transaction in the current connection is automatically committed at the end of statement execution.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When this property is set to true, the transaction in the current connection is automatically committed at the end of statement execution.

Please make the change in all the places where the Auto Commit option is described.

nav.yml Outdated
- Common issues: integrations/builtin/app-nodes/n8n-nodes-langchain.openai/common-issues.md
- OpenThesaurus: integrations/builtin/app-nodes/n8n-nodes-base.openthesaurus.md
- OpenWeatherMap: integrations/builtin/app-nodes/n8n-nodes-base.openweathermap.md
- OracleDB:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pehaps say Oracle Database instead of OracleDB


## Use bind parameters

When creating a query to run on a Oracle database, you can use the **Bind Variable Placeholder Values** field in the **Options** section to load data into the query. n8n sanitizes data in query parameters, which prevents SQL injection.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...When creating a query to run on an Oracle Database instance or service, ...


When creating a query to run on a Oracle database, you can use the **Bind Variable Placeholder Values** field in the **Options** section to load data into the query. n8n sanitizes data in query parameters, which prevents SQL injection.

For example, you want to find a specific fruits by their color. Given the following input data:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...For example, you would want to find specific fruits by their color....


- A **User** name.
- A **Password** for that user.
- **Connection String**: The Oracle database instance to connect to. The string can be an Easy Connect string, or a Net Service Name from a tnsnames.ora file, or the name of a local Oracle database instance.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...The Oracle Database instance...

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


- **Auto Commit**: Whether this property is true, then the transaction in the current connection is automatically committed at the end of statement execution.
- **Statement Batching**: The way to send queries to the database:
- **Single Statement**: A single Statement for all incoming items.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd vote to change the sentence use of "Statement" to all lowercase in these three bullets. The initcap is fine in the bold text - and I guess it is the UI element name, anyway.

#### Delete options

- **Auto Commit**: Whether this property is true, then the transaction in the current connection is automatically committed at the end of statement execution.
- **Statement Batching**: The way to send queries to the database:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In Oracle-land, 'query' is specific to statements that fetch rows so I think this needs to change 'queries' to 'statements'.

Other places in the doc may also need a similar change.

- **Credential to connect with**: Create or select an existing [Oracle Database credential](/integrations/builtin/credentials/oracledb.md).
- **Operation**: Select **Insert or Update**.
- **Schema**: Choose the schema that contains the table you want to work on. Select **From list** to choose the schema from the dropdown list or **By Name** to enter the schema name.
- **Table**: Choose the table that you want to work on. Select **From list** to choose the table from the dropdown list or **By Name** to enter the table name.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor smoothing on "from the dropdown list or By Name" would improve the flow. I'd say "from the dropdown list, or select By Name"

- **Return All**: Whether to return all results or only up to a given limit.
- **Limit**: The maximum number of items to return when **Return All** is disabled.
- **Select Rows**: Set the conditions to select rows. Define a **Column**, **Operator**, and **Value**(as `json`) to match rows on. If you don't select anything, Oracle Database selects all rows.
- **Combine Conditions**: How to combine the conditions in **Select Rows**. **AND** requires all conditions to be true, while **OR** requires at least one condition to be true.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This would flow better if some non bold text separated the two bold clauses. Maybe "The AND choice..."? Or something better than "choice"

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

modified as below:
How to combine the conditions in **Select Rows**. The **AND** requires all conditions to be true, while **OR** requires at least one condition to be true.


## Related resources

Refer to [SQL Language Reference](https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/index.html) for more information about the service.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done


## Prerequisites

Create a user account on a [OracleDB](https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/CREATE-USER.html) server database.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


- A **User** name.
- A **Password** for that user.
- **Connection String**: The Oracle database instance to connect to. The string can be an Easy Connect string, or a Net Service Name from a tnsnames.ora file, or the name of a local Oracle database instance.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

- A **User** name.
- A **Password** for that user.
- **Connection String**: The Oracle database instance to connect to. The string can be an Easy Connect string, or a Net Service Name from a tnsnames.ora file, or the name of a local Oracle database instance.
- **Use Optional Oracle Client Libraries**: If you want to use node-oracledb Thick mode, turn this on. This option will not be available in official n8n docker images. Additional settings to enable thick mode are required. Refer to [Enabling Thick mode documentation](https://node-oracledb.readthedocs.io/en/latest/user_guide/initialization.html#enabling-node-oracledb-thick-mode) for more information.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change "will not be" to "is not".

And change the lowercase "thick" to "Thick".


To set up your database connection credential:

1. Enter your database's username as the **User** in your n8n credential. Run this query to confirm the username:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are the SQL statements in these steps useful? What are the cases where users can run them but didn't already need the values to connect?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have removed the sql's and just mentioned to enter DB username.

can be used to dump file contents in the **Wallet Content** field.
Refer to [Node OracleDB ](https://node-oracledb.readthedocs.io/en/latest/user_guide/connection_handling.html#mutual-tls-connections-to-oracle-cloud-autonomous-database) for more information on working with TLS connections.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change "Node OracleDB" to "node-oracledb"

@sudarshan12s
Copy link
Author

Thanks for the review comments. I have addressed them, Please see.

Refer to [SQL Language Reference](https://www.oracle.com/pls/topic/lookup?ctx=dblatest&id=SQLRF) for more information about the service.

Refer to [Node OracleDB ](https://node-oracledb.readthedocs.io/en/latest/) for more information about the oracledb client driver.
Refer to [node-oracledb](https://node-oracledb.readthedocs.io/en/latest/) for more information about the oracledb client driver.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"the node-oracledb driver"

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And Refer to [node-oracledb documentation]

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@imchairmanm
Copy link
Contributor

@imchairmanm , Now the code PR is merged, Can you review and let me know your feedback.

Thanks.

@sudarshan12s Thanks for the ping. I'm no longer at n8n, so I'd suggest asking @HumanistSerif for a review!

Copy link

@sharadraju sharadraju left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved

@sharadraju
Copy link

@HumanistSerif Since the corresponding PR is merged, request you to review and let us know your feedback.

@cjbj
Copy link

cjbj commented Oct 25, 2025

Approved

Ditto.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

community-contribution Potential community contribution pending-dev Blocked pending merge of related dev PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants