Package Information
Available Nodes
Documentation
Oracle Connector for n8n
This connector enables direct integration with Oracle databases in n8n, offering operations to execute queries and SQL statements.
💸 Buy Me a Coffee
If you like this project, please consider buying me a coffee. Thank you for your support!
📥 Installation
- Install the package in the
nodesdirectory of n8n:
pnpm install @rempel/n8n-nodes-oracle
- Restart n8n.
🔑 Credential Configuration
Required Parameters:
| Field | Description |
|---|---|
| Connection Type | Basic (manual details) or Connection String (environment variable) |
| Host | Oracle server address (for Basic type only) |
| Port | Oracle port (default: 1521) |
| Service Name | Database Service Name or SID |
| Environment Variable Name | Name of the variable containing the connection string (e.g., ORACLE_CONN_STRING) |
| User | Database username |
| Password | User password |
| Client Mode | Thin (lightweight) or Thick (requires full Oracle client) |
🛠 Available Operations
1. Execute Query (SELECT)
- SQL Query: SQL query to retrieve data.
SELECT * FROM employees WHERE department_id = :deptId - Parameters: JSON parameters (e.g.,
{"deptId": 20}). - Result Format: Result formatting (
Uppercase,Lowercase,Original).
2. Execute Statement (DML/DDL)
- SQL Query: Commands such as
INSERT,UPDATE, or procedure calls.INSERT INTO employees (name, role) VALUES (:name, :role) - Auto Commit: Enables automatic transaction commit.
Returning Values from a PL/SQL Block
To return a value from a DML command (for example, a newly generated ID from an INSERT), you can use a PL/SQL block with the RETURNING INTO clause. This requires configuring an output bind variable.
1. SQL Query
Wrap your DML statement in a BEGIN...END block. Use :your_bind_name as an output variable to capture the returned value.
DECLARE
v_id NUMBER;
BEGIN
INSERT INTO employees (
...
) VALUES (
...
) RETURNING ID INTO v_id;
:id_out := v_id;
END;
2. Parameters
Configure the __outBinds__ key in the Parameters JSON field to define the output variable, specifying its name and data type.
{
"__outBinds__": {
"id_out": {
"type": "NUMBER"
}
}
}
This configuration ensures the id_out value is correctly returned in the node's output.
⚙️ Advanced Settings
Connection Pool Options:
| Parameter | Description | Default |
|---|---|---|
| Pool Min | Minimum connections in the pool | 1 |
| Pool Max | Maximum connections in the pool | 10 |
| Queue Timeout (Ms) | Connection wait timeout in ms | 30000 |
📋 Usage Example
Scenario: Employee Query
Credentials:
- Type:
Basic - Host:
oracle-prod.example.com - User/Password:
admin/******
- Type:
Oracle Node:
- Operation:
Execute Query - Query:
SELECT first_name, salary FROM employees WHERE salary > :minSalary - Parameters:
{"minSalary": 5000} - Format:
Uppercase
- Operation:
Output:
[ { "FIRST_NAME": "John", "SALARY": 7500 }, { "FIRST_NAME": "Maria", "SALARY": 6200 } ]
⚠️ Requirements and Notes
Oracle Client:
- For
Thickmode, set the environment variables:ORACLE_CLIENT_LIB_PATH=/path/to/instantclient ORACLE_CLIENT_CONFIG_DIR=/path/to/network/admin
- For
Query Validation:
- The
Execute Queryoperation blocks non-SELECT commands (e.g.,INSERT).
- The
Connection Strings:
- Example of environment variable:
ORACLE_CONN_STRING=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle-host)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE)))
- Example of environment variable:
🔄 Additional Resources
- Repository: GitHub
- Support: Submit issues on GitHub to report problems.
Documentation updated for version 1.0.15. Tested with Oracle Database 19c and n8n 1.18+.
