I am establishing a connection to oracle 11g which is in a remote server using cx_oracle 7 with python 3.6.7. my OS in Ubuntu 18.04
I have installed oracle instant client library with libclntsh.so but I am not getting the expected output.
here is the code which i am using to connect to the oracle db
connection = cx_Oracle.connect("username/password@host/port")
print (connection.version)
connection.close()
when the script runs i expect to get the connection version instead i am getting the following error message
File "script.py", line 13, in connection = cx_Oracle.connect("username/password@host/port") cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory". See https://oracle.github.io/odpi/doc/installation.html#linux for help
After some more research i got the solution from Ubuntu community , after you have installed oracle instant-client you will have to integrate oracle libraries as follows:
export LD_LIBRARY_PATH=/usr/lib/oracle/
<version>
/client(64)/lib/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}An example for 12.1 version for Linux x86_64 can be:
export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
where <version>
indicates the version of your of your oracle instant-client e.g 11.2, 12.2
The connection parameter should be as follows
connection = cx_Oracle.connect("username/password@host/service_name e.g orcl")
to get the listener/service_name type the following in the oracle sqlplus
SQL> show parameter local_listener
literal under VALUE is your listener/service_name.