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!!
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.