Overview
This article is part of a series. See Using SAS/ACCESS Interface to ODBC on UNIX Platforms for a listing of all articles in this series.
Requirements
To use SAS/ACCESS Interface to ODBC on UNIX platforms, you must have one or more 64-bit ODBC drivers for the data sources to which you need to connect and an ODBC driver manager. In most cases, you can use a single ODBC driver manager with multiple ODBC drivers. Unless you license ODBC drivers from such vendors as DataDirect, the ODBC drivers that you obtain do not include an ODBC driver manager. You typically pair these drivers with a freeware unixODBC driver manager.
Process
Here are the steps to obtain and build this driver manager for Linux.
Use FTP in binary mode to move this file to your UNIX machine. Place the file in the directory of your choice. This directory is used only during installation. For example, you might create a directory named unixODBC_download for this file.
By default, the unixODBC driver manager is installed in a directory such as /usr/lib64 on Linux. Because this directory already contains many other third-party components, which makes it difficult to identify unixODBC-specific components, it is recommended that you do NOT install the unixODBC driver manager in that directory. To make it easier to find and maintain, install it instead in its own directory.
If you already have write privileges there, you can install it in the /opt directory. Here is an example of how you might create a directory in /opt named unixODBCx.x.x.
[root@cumulus test_scripts]# cd /opt
[root@cumulus opt]# pwd
/opt
[root@cumulus opt]# ls
ibm microsoft np_axsmod nz sun teradata TKGrid.old VADP VADP.old webmin
[root@cumulus opt]# mkdir unixODBCx.x.x
[root@cumulus opt]# ls
ibm microsoft np_axsmod nz sun teradata TKGrid.old unixODBCx.x.x VADP VADP.old webmin
./configure --prefix=/opt/unixODBCx.x.x
make
make install
This log shows how you can build a 64-bit unixODBC x.x.x ODBC driver manager on Linux. (Some tar-related output in STDOUT has been omitted.)
[sastac1@cumulus unixODBCx.x.x_download]$ uname –a (no underscore in dir name, or underscore in all?-- global)
Linux cumulus.unx.sas.com 2.6.32-131.6.1.el6.x86_64 #1 SMP Mon Jun 20 14:15:38 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux
[sastac1@cumulus unixODBC_x.x.x_download]$ pwd
/saswork/sasswl/7611263597_acc_odbc_unixodbc_oracle_netezza_sqlserver/unixODBC_x.x.x_download
[sastac1@cumulus unixODBC_x.x.x_download]$ ls
unixODBC-x.x.x.tar.gz
[sastac1@cumulus unixODBC_x.x.x_download]$ gunzip unixODBC-x.x.x.tar.gz
[sastac1@cumulus unixODBC_x.x.x_download]$ ls
unixODBC-x.x.x.tar
[sastac1@cumulus unixODBC_x.x.x_download]$ tar -xvf unixODBC-x.x.x.tar
.
. (some output has been omitted)
.
unixODBC-x.x.x/lst/ChangeLog
unixODBC-x.x.x/lst/Makefile.in
unixODBC-x.x.x/lst/lstFirst.c
unixODBC-x.x.x/lst/TODO
unixODBC-x.x.x/ChangeLog
unixODBC-x.x.x/extras/
unixODBC-x.x.x/extras/snprintf.c
unixODBC-x.x.x/extras/Makefile.am
unixODBC-x.x.x/extras/vms.c
unixODBC-x.x.x/extras/strcasecmp.c
unixODBC-x.x.x/extras/Makefile.in
unixODBC-x.x.x/Makefile.in
unixODBC-x.x.x/README.OSX
[root@cumulus unixODBC_x.x.x_download]# ls
unixODBC-x.x.x unixODBC-x.x.x.tar
[root@cumulus unixODBC_x.x.x_download]# cd unixODBC-x.x.x
[root@cumulus unixODBC-x.x.x]# ls
acinclude.m4 configure Drivers install-sh Makefile.am odbcinst README.SOLARIS
aclocal.m4 configure.in DRVConfig Interix Makefile.in README README.VMS
AUTHORS COPYING exe libltdl Makefile.svn README.AIX samples
ChangeLog cur extras log man README.CYGWIN unixodbc_conf.h.in
config.guess depcomp include lst missing README.INTERIX vms
config.h.in doc ini ltmain.sh mkinstalldirs README.OSX vmsbuild.com
config.sub DriverManager INSTALL m4 NEWS README.QNX ylwrap
[sastac1@cumulus unixODBC_x.x.x_download]$ su root
Password:
[root@cumulus opt]# cd /opt
[root@cumulus opt]# pwd
/opt
[root@cumulus opt]# ls
ibm microsoft np_axsmod nz sun teradata TKGrid.old VADP VADP.old webmin
[root@cumulus opt]# mkdir unixODBCx.x.x
[root@cumulus opt]# ls
ibm microsoft np_axsmod nz sun teradata TKGrid.old unixODBCx.x.x VADP VADP.old webmin
[root@cumulus opt]#
[root@cumulus unixODBCx.x.x]# pwd
/opt/unixODBCx.x.x
[root@cumulus unixODBC-x.x.x]# cd /saswork/sasswl/7611263597_acc_odbc_unixodbc_oracle_netezza_sqlserver/
unixODBC_x.x.x_download/saswork/sasswl/7611263597_acc_odbc_unixodbc_oracle_netezza_sqlserver/
unixODBC_x.x.x_download/unixODBC-x.x.x
[root@cumulus unixODBC-x.x.x]# ls
acinclude.m4 configure Drivers install-sh Makefile.am odbcinst README.SOLARIS
aclocal.m4 configure.in DRVConfig Interix Makefile.in README README.VMS
AUTHORS COPYING exe libltdl Makefile.svn README.AIX samples
ChangeLog cur extras log man README.CYGWIN unixodbc_conf.h.in
config.guess depcomp include lst missing README.INTERIX vms
config.h.in doc ini ltmain.sh mkinstalldirs README.OSX vmsbuild.com
config.sub DriverManager INSTALL m4 NEWS README.QNX ylwrap
[root@cumulus unixODBC-x.x.x]# ./configure --prefix=/opt/unixODBCx.x.x
.
. (some output has been omitted)
.
checking for unistd.h... (cached) yes
checking for dl.h... no
checking for sys/dl.h... no
checking for dld.h... no
checking for mach-o/dyld.h... no
checking for dirent.h... yes
checking for closedir... yes
checking for opendir... yes
checking for readdir... yes
checking for strlcat... no
checking for strlcpy... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
[root@cumulus unixODBC-x.x.x]# make
.
. (some output has been omitted)
.
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/saswork/sasswl/7611263597_acc_odbc_unixodbc_oracle_netezza_sqlserver/unixODBC_x.x.x_download/unixODBC-x.x.x/man'
Making all in samples
make[2]: Entering directory `/saswork/sasswl/7611263597_acc_odbc_unixodbc_oracle_netezza_sqlserver/unixODBC_x.x.x_download/unixODBC-x.x.x/samples'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/saswork/sasswl/7611263597_acc_odbc_unixodbc_oracle_netezza_sqlserver/unixODBC_x.x.x_download/unixODBC-x.x.x/samples'
make[2]: Entering directory `/saswork/sasswl/7611263597_acc_odbc_unixodbc_oracle_netezza_sqlserver/unixODBC_x.x.x_download/unixODBC-x.x.x'
make[2]: Leaving directory `/saswork/sasswl/7611263597_acc_odbc_unixodbc_oracle_netezza_sqlserver/unixODBC_x.x.x_download/unixODBC-x.x.x'
make[1]: Leaving directory `/saswork/sasswl/7611263597_acc_odbc_unixodbc_oracle_netezza_sqlserver/unixODBC_x.x.x_download/unixODBC-x.x.x'
[root@cumulus unixODBC-x.x.x]# make install
.
. (some output has been omitted)
.
make[2]: Leaving directory `/saswork/sasswl/7611263597_acc_odbc_unixodbc_oracle_netezza_sqlserver/unixODBC_x.x.x_download/unixODBC-x.x.x/samples'
make[1]: Leaving directory `/saswork/sasswl/7611263597_acc_odbc_unixodbc_oracle_netezza_sqlserver/unixODBC_x.x.x_download/unixODBC-x.x.x/samples'
make[1]: Entering directory `/saswork/sasswl/7611263597_acc_odbc_unixodbc_oracle_netezza_sqlserver/unixODBC_x.x.x_download/unixODBC-x.x.x'
make[2]: Entering directory `/saswork/sasswl/7611263597_acc_odbc_unixodbc_oracle_netezza_sqlserver/unixODBC_x.x.x_download/unixODBC-x.x.x'
make[2]: Nothing to be done for `install-exec-am'.
touch /opt/unixODBCx.x.x/etc/odbcinst.ini
touch /opt/unixODBCx.x.x/etc/odbc.ini
mkdir -p /opt/unixODBCx.x.x/etc/ODBCDataSources
cp unixodbc_conf.h /opt/unixODBCx.x.x/include/unixodbc_conf.h
make[2]: Leaving directory `/saswork/sasswl/7611263597_acc_odbc_unixodbc_oracle_netezza_sqlserver/unixODBC_x.x.x_download/unixODBC-x.x.x'
make[1]: Leaving directory `/saswork/sasswl/7611263597_acc_odbc_unixodbc_oracle_netezza_sqlserver/unixODBC_x.x.x_download/unixODBC-x.x.x'
[root@cumulus unixODBCx.x.x]# cd /opt/unixODBCx.x.x
[root@cumulus unixODBCx.x.x]# ls
bin etc include lib share
[root@cumulus unixODBCx.x.x]# cd lib
/opt/unixODBCx.x.x/lib
[root@cumulus lib]# ls
libodbccr.la libodbccr.so.2 libodbcinst.la libodbcinst.so.2 libodbc.la libodbc.so.2
libodbccr.so libodbccr.so.2.0.0 libodbcinst.so libodbcinst.so.2.0.0 libodbc.so libodbc.so.2.0.0
[root@cumulus lib]# file libodbc.so
libodbc.so: symbolic link to `libodbc.so.2.0.0'
[root@cumulus lib]# file libodbc.so.2.0.0
libodbc.so.2.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, not stripped
[root@cumulus lib]#
Hi,
can someone help me, I get this error when I trying to install unixODBC
I ran this commands :./configure --prefix=/usr --sysconfdir=/etc/unixODBC && make
and get the error in the image
I want to connect to oracle database from sas VA.
Thanks
You would be best to open a Tech Support track for your problem as they can walk you through the required install steps for your SAS installation.
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Data Literacy is for all, even absolute beginners. Jump on board with this free e-learning and boost your career prospects.