Show issues from last 30 days

Summary

Introduce a new Oracle Database node in n8n that provides core SQL operations, including:

  1. Insert
  2. Execute statement
  3. Select
  4. Upsert
  5. Update
  6. Delete (tables/rows)

Special thanks to the earlier contribution, which this work builds upon.

<!-- Describe what the PR does and how to test. Photos and videos are recommended. --> <img width="1495" height="849" alt="ExecuteOp" src="https://github.com/user-attachments/assets/7209171f-2526-4b77-8be9-3a2f210d2717" /> <img width="1493" height="796" alt="InsertOp" src="https://github.com/user-attachments/assets/b788464e-bd7b-409a-bf00-d5eec60de503" /> <img width="416" height="772" alt="DeleteOp" src="https://github.com/user-attachments/assets/d82c2b11-44a8-4416-bc3f-75a61a991e71" /> <img width="398" height="760" alt="upsertOp" src="https://github.com/user-attachments/assets/7faabe1e-7149-4dec-95b2-3c3bb085e4e4" /> <img width="399" height="753" alt="selectOp" src="https://github.com/user-attachments/assets/97db12c8-e779-4f22-a46a-1a8cbea15881" /> <img width="396" height="754" alt="updateOp" src="https://github.com/user-attachments/assets/acd3affe-404c-4d34-9916-c59ede4c84b7" />

Related Linear tickets, Github issues, and Community forum posts

Doc PR

<!-- Include links to **Linear ticket** or Github issue or Community forum post. Important in order to close *automatically* and provide context to reviewers. https://linear.app/n8n/issue/ --> <!-- Use "closes #<issue-number>", "fixes #<issue-number>", or "resolves #<issue-number>" to automatically close issues when the PR is merged. -->

Review / Merge checklist

  • PR title and summary are descriptive. (conventions) <!-- **Remember, the title automatically goes into the changelog. Use `(no-changelog)` otherwise.** -->
  • Docs updated or follow-up ticket created.
  • [x ] Tests included. <!-- A bug is not considered fixed, unless a test is added to prevent it from happening again. A feature is not complete without tests. --> I’ve added tests in n8n/packages/nodes-base/nodes/Oracle/Sql/test/operations.test.ts and n8n/packages/nodes-base/nodes/Oracle/Sql/test/utils.test.ts. These tests use mocked connections by default.

An optional environment variable, ORACLE_INTEG_TESTS, is supported to run the same tests against a real database. When set to ORACLE_INTEG_TESTS=1, the tests will connect to the database specified in the environment. For integration tests, database credentials are read from environment variables (for testing purposes only). In production, sensitive credentials should be retrieved from a secure storage mechanism instead of environment variables.

process.env.ORACLE_USER   -> userName
process.env.ORACLE_PASSWORD   -> password
process.env.ORACLE_CONNECTSTRING   -> connection string

Following is the command I used to test only oracledb. (pnpm run test will test entire suite)

  - cd /Users/sudarshansoma/n8n/fork/n8n/packages/nodes-base/nodes/Oracle/Sql/test/
  - npx jest /Users/sudarshansoma/n8n/fork/n8n/packages/nodes-base/nodes/Oracle/Sql/test/*


For running against the DB, I use these steps:

Install latest 23ai DB:
- docker run -d -p 1521:1521 -e ORACLE_PASSWORD=system -e APP_USER=vector -e APP_USER_PASSWORD=vector gvenzl/oracle-free

set Env:
export ORACLE_INTEG_TESTS=1
export ORACLE_USER=vector
export ORACLE_PASSWORD=vector
ORACLE_CONNECTSTRING= localhost:1521/freepdb1

  - cd /Users/sudarshansoma/n8n/fork/n8n/packages/nodes-base/nodes/Oracle/Sql/test/
  - npx jest /Users/sudarshansoma/n8n/fork/n8n/packages/nodes-base/nodes/Oracle/Sql/test/*

  • PR Labeled with release/backport (if the PR is an urgent fix that needs to be backported)
Next issue in about 11 hours