[SOLVED] NJS-045 DPI-1047: 64-bit Oracle Client library cannot be loaded

This is a solution for an exception occurred when you try to run Node.js application required Oracle Database.

Problem

Unable to run Node.js application because of the  DPI-1047  exception:

Cause

There may be several reasons why you get the exception:

  1. Missing required Oracle Database Instant Client libraries.
  2. LD_LIBRARY_PATH environment variable is not set correctly
  3. Sufixes in *.so libraries

Solution A

First of all you should follow the instructions. Remember to:

  • install Oracle Database Instant Client libraries in proper version. If you use wrong version you can get the ORA-01804 exception.
  • install libaio/libaio1 package

Solution B

If you still get the exception ensure that you set LD_LIBRARY_PATH correctly:

If you use Visual Studio Code, you can also add environment variable to the lauch.json file.

 

Solution C

Go to the location of instantclient and ensure that libclntsh.so  file ends with *.so extenstion.  Im my case it was libclntsh.so.12.1 . The solution is to create symbolic link:

or to rename/copy the library:

 

I hope it was helpful to you. If you have any questions, feel free to ask me in comments below.

Leave a Reply

2 Comments on "[SOLVED] NJS-045 DPI-1047: 64-bit Oracle Client library cannot be loaded"

avatar
  Subscribe  
newest oldest most voted
Notify of
Mostafa
Guest

Hi, I followed the instruction that you provided, but still I have issues regarding instant client installation. I have successfully installed Oracle SQL Developer and imported in python as cx_Oracle, however I cannot link instant client to it and I get this error:

DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: “libclntsh.so: cannot open shared object file: No such file or directory”. See https://oracle.github.io/odpi/doc/installation.html#linux for help.

I was wondering if you can help me with that.

Close Menu