- Home
- Resources
- Integrations
- Oracle Database
Oracle Database n8n integrationAutomate Oracle Database with n8n.
Your Oracle tables can feed a workflow without a single export file. The Oracle Database n8n integration ships 6 operations on one Database resource: read rows, write them back, or run the SQL yourself. No trigger node comes with it, so a schedule or a webhook starts the run.
Verified Trustpilot reviews · AI, automation & growth agency
What does the Oracle Database n8n integration actually do?
The Oracle Database n8n integration is one node that opens a connection to an Oracle database and runs a single operation against it, chosen among 6: Select, Insert, Update, Insert or Update, Delete, or a raw SQL statement you write yourself. All of them sit under one resource, Database, so the choice you make is about the verb, never about the object. The node reads and writes rows. It does not watch them, because Oracle Database has no trigger node in n8n.
Three shapes cover most of what teams build on top of it, and all three start somewhere other than Oracle, since the node cannot start a workflow by itself.
The nightly extract. A Schedule Trigger wakes the workflow up, Select pulls the rows of the day with Return All on, and the result lands in a spreadsheet the finance team already opens every morning, Google Sheets or Microsoft Excel 365. Nobody hand-exports a CSV after that.
The write-back. Forms, apps and other tools keep producing records that belong in the database. Insert or Update is the operation that survives a rerun: a row that is already there gets updated instead of duplicated, which matters the day someone replays yesterday's execution by accident.
The alert. Execute SQL runs an aggregate that no combination of filters would produce, the workflow compares it to a threshold, and the message goes to Slack. The same shape feeds a model: the rows travel to Openai for a plain-language summary, and the summary comes back into the same channel.
Where the node stops is easy to describe. It has 6 operations and 1 resource, no trigger, so nothing tells you a row changed. You go and look, on a schedule. Select, Insert, Update, Insert or Update and Delete cover ordinary row work, and everything else, joins, aggregates, calls to logic that already lives in the database, goes through Execute SQL with bind parameters instead of a second node. Choosing between n8n and another platform for a database that sits in a private network is mostly a hosting question, and the n8n review works through the criteria.
How do you connect n8n to an Oracle database ?
- 01
Create the credential once
Open the Credentials menu in n8n and create a credential for Oracle Database. A credential is the stored set of connection details n8n uses to reach the server, filled in once with what the person who administers the database hands you. It lives on the instance, not inside a workflow, so nothing is retyped later.
- 02
Pick it in the node
Add the Oracle Database node to a workflow and select that credential in its dropdown. The same credential serves every workflow on the instance, so a second automation on the same database costs you one click. Then set the resource, Database, which is the only one the node has, and the operation you want among the 6.
- 03
Test with a read before you write
Keep the first run harmless. Choose Select, leave Select Rows empty so every row qualifies, and leave Return All off so Limit caps what comes back. Execute the node on its own. Rows in the output panel mean the connection holds and the database user can read the table, and you can move on to Insert or Execute SQL knowing the connection is not what will break.
What can the Oracle Database node do?
The Oracle Database node exposes 6 operations across 1 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
| Resource | Update | Delete | Execute SQL | Insert | Select | Insert or Update |
|---|---|---|---|---|---|---|
| Database | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Operations index
Database
6 operationsDelete table or rows
database.deleteTableWhat you see in n8n
Notes & use cases
This is the destructive end of the node, and Command decides how far it goes.
Key parameters
- Command:
truncateempties the table and preserves its structure,deleteremoves the rows matching the conditions below,dropdeletes data and structure permanently. - Select Rows: the conditions that pick the rows, each built from a column, one of the 9 operators (Equal, Like, Is Null and the comparisons) and a value. Left empty with
delete, every row goes. - Combine Conditions: AND keeps rows matching all conditions, OR keeps rows matching at least one.
Execute SQL
database.executeWhat you see in n8n
Notes & use cases
When the five row operations are too blunt, this one hands the wheel back: the statement is yours, and the rows it returns arrive as n8n items.
Key parameters
- Statement: required. The SQL to execute, with positional placeholders such as
:1and:2, or named ones such as:name. - Bind Variable Placeholder Values: the values behind those placeholders. Binding them beats gluing them into the string, and keeps SQL injection out of reach.
- Statement Batching: Single Statement sends one statement for all incoming items, Independently runs one per item, Transaction groups them and rolls everything back if one fails.
{{ $json.field }}.Insert rows in a table
database.insertWhat you see in n8n
Notes & use cases
Insert writes new rows and does nothing else: no lookup, no merge, one incoming item becomes one row.
Key parameters
- Columns: required. The mapping that says which value goes into which column of the table, either typed in or taken from the incoming item with an expression,
{{ $json.field }}. - Auto Commit: when it is on, the transaction on the current connection is committed at the end of statement execution.
Insert or update rows in a table
database.upsertWhat you see in n8n
Notes & use cases
Same write, one difference that changes everything: a row that already exists gets updated instead of being added a second time.
Key parameters
- Columns: required. The mapping between the incoming item and the table columns, values typed in or pulled with
{{ $json.field }}. - Statement Batching: Independently executes one statement per incoming item, so a single bad record does not take the others down; Transaction does the opposite and rolls the whole run back on the first failure.
Select rows from a table
database.selectWhat you see in n8n
Notes & use cases
Reading is where the node gives you the most knobs, and the first one decides the volume.
Key parameters
- Return All: on, every matching row comes back; off, Limit caps how many rows the node returns.
- Select Rows and Combine Conditions: the filter, one condition per column and operator, joined with AND or OR. Left empty, all rows are selected.
- Sort: one or more sort rules, each a column plus a Direction, ASC or DESC.
- Output Columns: restricts the returned columns, which keeps a wide table from flooding the rest of the workflow.
Update rows in a table
database.updateWhat you see in n8n
Notes & use cases
Update touches rows that already exist and leaves the rest of the table alone.
Key parameters
- Columns: required. The mapping that carries the new values, and the column used to find the row again, most often filled with
{{ $json.field }}from the node before. - Output Columns: the columns you want back after the write, handy when only a status matters downstream.
- Output Numbers As String: returns numbers as strings, on NUMBER, FLOAT and LONG columns only, which saves a long identifier from being rounded on its way out.
Need help automating Oracle Database with n8n?
A person reads every message.


