[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:

3
Leave a Reply

avatar
2 Comment threads
1 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
huozhihuilukasz.cieslaMostafa Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
Mostafa
Guest
Mostafa

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.

huozhihui
Guest
huozhihui

In Ubuntu, can you connect to the database with the dynamic library of Oracle client only?

Close Menu