Skip to content

"Error: DPI-1047: Cannot locate a 64-bit Oracle Client library" when using libDir #1771

@ericmorand

Description

@ericmorand

I've been strugling with this bug for months: whenever I try to initialize the Oracle client, I get the following error:

Error: DPI-1047: Cannot locate a 64-bit Oracle Client library: "libnnz.so: cannot open shared object file: No such file or directory".

I'm initializing the client this way:

OracleDB.initOracleClient({
    libDir: '/home/ericmorand/Applications/instantclient_23_26'
});

It makes sense because, if I understand the documentation well, Linux platforms don't support this libDir configuration parameter and the library path MUST be provided with an environment variable before executing the scrips.

Where it starts to not make sense is this:

  • If I set the environment variable to the correct path, it works
  • If I set the environment variable and the libDir configuration parameter to the same correct path, it works
  • If I set the environment variable to the correct path, and the libDir configuration parameter to an incorrect path, it does not work
  • If I set the environment variable to an incorrect path, and the libDir configuration parameter to a correct path, it does not work

So, it seems like the libDir configuration parameter is taken into account, and in some case take precedence on the environment variable, but ultimately is not used, and is ignored if not passed.

What is the actual logic behind this? The documentation is nowhere near accurate enough for us to understand how we are expected to use the library in applications that are expected to be multi-platform.

And why is the libDir configuration parameter not enough on Linux platforms? Why is it working for every other platform except this specific one?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions