Skip to Main Content
  • Questions
  • Trying to Connect to a Local Oracle inside a Container

Breadcrumb

Question and Answer

Connor McDonald

Thanks for the question, Paulo Rodrigues Amador Neto.

Asked: January 21, 2023 - 1:46 am UTC

Last updated: January 25, 2023 - 3:21 am UTC

Version: oracledb for node

Viewed 1000+ times

You Asked

I have a Docker Container with Oracle Database Entrepise Edition (followed the basic instructions on container-regitry.oracle.com)

And i'm trying to create a NodeJs application to connect to the Oracle Database inside the container (tried the "how to basics" on node-oracledb.readthedocs.io), but without success.

My connection object is the following (using same credentials and connectString i'm able to connect on SQL Developer):
 {
   user: 'SYS',
   password: 'Paulo@oracle123',
   connectString: 'localhost/OracleSID '
 }

I've been receiving the following error

Error: DPI-1047: Cannot locate a 64-bit Oracle Client library: "The specified module could not be found". See https://oracle.github.io/node-oracledb/INSTALL.html for help
Node-oracledb installation instructions: https://oracle.github.io/node-oracledb/INSTALL.html
You must have 64-bit Oracle Client libraries in your PATH environment variable.
If you do not have Oracle Database on this computer, then install the Instant Client Basic or Basic Light package from
https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html
A Microsoft Visual Studio Redistributable suitable for your Oracle client library version must be available.

    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async connectToDb (D:\PersonalDev\Migrate Oracle to MSSQL\index.js:10:18) {
  errorNum: 0,
  offset: 0
}

But coudn't figure it out.

Please HELP!!

and Connor said...

As the error suggests, you need an Oracle client to talk to the database.

Common errors here are:

1) you do not have an client installed at all. Download from https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html (its just unzip and you're done)
2) you have a client but its not on your PATH, so the node driver can't see it
3) you have the 32-bit client installed or first on your path. You have to use the 64bit one.

SQL Developer does not use the client (it uses JDBC) which is why it is not impacted.

Hope this helps.



Is this answer out of date? If it is, please let us know via a Comment

More to Explore

Security

All of the vital components for a secure database are covered in the Security guide.