Oracle Database node [GOT CREATED]

node-oracledb starting from version 6.0 does not require Oracle Client Libraries.
Please check the blog: https://medium.com/oracledevs/usher-in-a-new-era-with-the-node-oracledb-6-0-pure-javascript-thin-driver-e10e2af693b2

We have this down on our list of nodes to create soon (ish) so I would expect something to be there by the end of the year.

@Jon / @n8n team
As you are part of the n8n team, I am hoping that you will be able to answer my query.
I was wondering what is the procedure for a Source Code contribution for Oracle Database support?

I am from the team which manages the oracledb npm package: oracledb and the current version of the package does not require Oracle Client libraries.

1 Like

Hey @sharadchan87

Drop an email to nodes@n8n.io, we would love to have a chat about it.

Hi @Jon ,
Thank you for responding.
My colleague @Sudarshan_Soma has sent the mail to nodes@n8n.io for the Oracle Database Connector support.
For the benefit of everyone else, the official Oracle Database connector support GitHub fork is available here.

Awaiting your response to integrate it into n8n.
We have an active team working on this support.

I have raised PR for adding Oracle Database node for SQL operations. I’ll be happy to incorporate any feedback you may have—please share

1 Like

It will be useful for Oracle 11g? As I know, Instant Client is required.

@Ricky The Oracle Database node requires the node-oracledb driver (latest version - 6.9). For Oracle Database 11g, you would need to configure the node to use Oracle Client. There is an option available on the node. The doc PR is under progress and will be complete soon.

However, we would encourage you to move to the 19c Oracle Database version at least to make use of node-oracledb’s Thin mode option, which does not require the Oracle Client.

Thanks for the team’s contribution, I look forward to this function for a long time, I hope to see asap, thank you! :heart:

i’m new here. 2 Quick Questions: Is the oracle node available in n8n right now? How do i get it into my docker compose setup?

Hi @holgerdeha , Currently the PR is still under review. You can use the branch for testing using these steps, If that works for you : “git remote add myfork https://github.com/sudarshan12s/n8n.git” ; “git fetch myfork”; “git checkout -b pr-19231 myfork/master”

I shall inform once the PR is merged and official docker image is available.

Thanks.

quick question,

oracle node could be use with community nodes or only available on official docker image.

oracledb node support is now merged in n8n repo. The node will be available inbuilt with n8n installation.

Hi @Ricky , You’ll be able to use the OracleDB node with a regular n8n installation (for example, via npm install n8n or npx n8n) starting with the next n8n release. Meanwhile you need to build and start n8n . (git clone GitHub - n8n-io/n8n: Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
cd n8n
pnpm i
pnpm build
pnpm start)

1 Like

thank you!!

last question,

May I ask if there will be Oracle community nodes available for us to use in the future, such as via npm install oracledb? Because the self-hosted version I’m using may not always be the latest, and I believe many people will encounter the same issue down the line

I think maintaining a separate community OracleDB node may not be feasible, especially when it comes to keeping it in sync with n8n’s core APIs. I’ll check on this and get back to you.

1 Like

thanks a lot :smiling_face_with_sunglasses::smiling_face_with_sunglasses:

Looks like thick mode has some bug**
ORA-00904: “ATC”.“IDENTITY_COLUMN”: invalid identifier**

ORA-00904: "ATC"."IDENTITY_COLUMN": invalid identifier
Error details

 Other info
n8n version

1.117.0 (Self Hosted)

Stack trace

Error: ORA-00904: "ATC"."IDENTITY_COLUMN": invalid identifier at getColumnMetaData (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_afd197edb2c1f848eae21a96a97fab23/node_modules/n8n-nodes-base/nodes/Oracle/Sql/helpers/utils.ts:274:18) at ExecuteContext.execute (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_afd197edb2c1f848eae21a96a97fab23/node_modules/n8n-nodes-base/nodes/Oracle/Sql/actions/database/select.operation.ts:99:23) at ExecuteContext.router (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_afd197edb2c1f848eae21a96a97fab23/node_modules/n8n-nodes-base/nodes/Oracle/Sql/actions/router.ts:41:17) at ExecuteContext.execute (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_afd197edb2c1f848eae21a96a97fab23/node_modules/n8n-nodes-base/nodes/Oracle/Sql/OracleSql.node.ts:27:10) at WorkflowExecute.executeNode (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1093:8) at WorkflowExecute.runNode (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1274:11) at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1708:27 at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_08b575bec2313d5d8a4cc75358971443/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:2324:11

There are my Dockerfile

FROM n8nio/n8n:1.117.0

USER root

RUN apk add --no-cache libaio curl unzip pnpm

RUN curl --noproxy '*' -o oracle-instantclient-basic.zip https://download.oracle.com/otn_software/linux/instantclient/2117000/instantclient-basic-linux.x64-21.17.0.0.0dbru.zip && \
    unzip -o -q oracle-instantclient-basic.zip -d /opt/oracle && \
    rm -f oracle-instantclient-basic.zip

ENV LD_LIBRARY_PATH=/opt/oracle/instantclient_21_17:$LD_LIBRARY_PATH

RUN rm -rf /var/cache/apk/*

USER node

but use execute sql looks good

@Ricky, Thanks for testing this quickly.
Perhaps try testing with Thin mode also, if your use case allows it.

Also, can you try with a different column or row?
Does this column (IDENTITY_COLUMN) and table (ATC) exist?
What Oracle Database version are you using?