And sometimes following Oracle documentation solves quite some hassle.
Make sure Basic Instant Client is deployed before running the ODBC install script.
Unzip the ODBC Instant Client package, then execute the odbc_update_ini.sh script with Driver Manager installed directory as a command line argument. (For complete syntax, please run "odbc_update_ini.sh" without any command line argument.)
For example, if Driver Manager is installed in /home/DriverManager directory
$ odbc_update_ini.sh /home/DriverManger
It will add the DSN entry in $HOME/.odbc.ini and /etc/odbcinst.ini with DSN name as OracleODBC-11g
After the installation the environment needs to be configured in the following way.
Add the directory to the LD_LIBRARY_PATH system environment variable.
Otherwise ODBC manager will be not able to load/find the driver.
Define the TNS_ADMIN environment variable to point the .ora files directory for OCI.
This must be set for OCI to resolve the TNS name. If TNS_ADMIN is not set, OCI will examine an operating system dependent set of directories to find tnsnames.ora. This search path includes looking in the directory $ORACLE_HOME/network/admin/tnsnames.ora. This is the only reason to set the ORACLE_HOME environment variable for Oracle Instant Client. If ORACLE_HOME is set when running Instant Client applications, it must be set to a directory where Instant Client exists (in this case C:\Oracle\instantclient_11_2). If ORACLE_HOME is not set, then looks in current directory for tnsnames.ora.
Set any Oracle globalization variables required for your locale. See the Oracle Database 11g Globalization Support Guide for more information.
For example on Linux to set NLS_LANG:
setenv NLS_LANG JAPANESE_JAPAN.JA16EUC
$ORACLE_HOME
? Easiest fix is to add the user to thedba
group.