Actions4
- Database Actions
Overview
This node enables interaction with an Oracle Database by executing SQL statements. It supports two main operations under the "Database" resource:
- Execute Query: Runs SELECT queries to retrieve data.
- Execute Statement: Executes DML (INSERT, UPDATE, DELETE), DDL (CREATE, DROP, ALTER), or stored procedure calls.
The node manages connection pooling for efficient database access and supports parameter binding in queries/statements. It also allows customization of transaction commit behavior and output formatting.
Common scenarios:
- Fetching user records or reports via SELECT queries.
- Running database updates, inserts, or schema changes programmatically.
- Executing stored procedures with input/output parameters.
- Integrating Oracle DB operations into automated workflows.
Practical example:
- Use "Execute Query" to fetch all orders for a customer by passing a parameterized SELECT statement.
- Use "Execute Statement" to insert a new record into a table with auto-commit enabled.
Properties
| Name | Meaning |
|---|---|
| Resource | Fixed to "Database" for this node. |
| Operation | Choose between "Execute Query" (SELECT) or "Execute Statement" (DML/DDL/procedures). |
SQL Query (query) |
The SQL statement to execute. Supports parameter placeholders like :id. |
Parameters (parameters) |
JSON object defining bind parameters for the query/statement. |
Auto Commit (autoCommit) |
(Only for Execute Statement) Whether to automatically commit transactions after execution. Default: true. |
Include Other Input Fields (includeOtherInputFields) |
Whether to include all original input fields in the output along with query results or execution info. Default: false. |
Result Format (format) |
(Only for Execute Query) Format of result keys: Uppercase, Lowercase, or Original case. |
Connection Pool Options (poolOptions) |
Collection of options to configure the connection pool: - Pool Min: Minimum connections (default 2) - Pool Max: Maximum connections (default 20) - Queue Timeout (Ms): Wait time for connection when pool is busy (default 60000 ms) |
Output
For Execute Query:
- Outputs an array of JSON objects representing rows returned by the SELECT query.
- Each row's keys can be formatted as uppercase, lowercase, or original case based on the "Result Format" property.
- If "Include Other Input Fields" is enabled, each output item merges the original input JSON with the query result row.
For Execute Statement:
- Outputs JSON objects containing execution metadata such as:
affectedRows: Number of rows affected by the statement.- Any output bind variables if used.
- If "Include Other Input Fields" is enabled, the output merges these metadata with the original input JSON.
- Outputs JSON objects containing execution metadata such as:
Binary data output is not supported by this node.
Dependencies
- Requires an Oracle Database accessible with valid credentials.
- Needs an API key credential configured in n8n for authentication to the Oracle DB.
- Uses the official OracleDB Node.js driver internally.
- Optionally requires environment variables for connection strings if using that mode.
- Optional Oracle client libraries may be needed depending on the connection mode (thin vs thick).
Troubleshooting
Connection pool errors:
- Error message about connection timeout or all connections busy suggests increasing the maximum pool size or optimizing queries.
- Ensure environment variables for connection strings are set if using that mode.
Invalid JSON parameters:
- If the "Parameters" JSON is malformed, the node throws an error indicating invalid JSON. Fix the JSON syntax accordingly.
Unsupported query type for Execute Query:
- Attempting to run INSERT/UPDATE/DELETE with the "Execute Query" operation will cause an error. Use "Execute Statement" instead.
Oracle client initialization errors:
- If Oracle client libraries are missing or misconfigured, initialization may fail. Verify environment variables pointing to Oracle client library paths.
Output bind variable errors:
- Using output bind variables requires specifying valid OracleDB types. Invalid types cause errors.