●unixODBCダウンロード
unixODBC は次のサイトからダウンロードすることができます。
http://www.unixodbc.org/
今回は最新のunixODBC-2.3.6.tar.gzをダウンロードしました。
●OSバージョン確認
[root@ol6 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.9 (Santiago)
●unixODBCインストール
①ダウンロードしたunixODBC-2.3.6.tar.gzを解凍
[root@ol6 tmp]# ls
unixODBC-2.3.6.tar.gz
[root@ol6 tmp]# tar zxvf ./unixODBC-2.3.6.tar.gz
unixODBC-2.3.6/
unixODBC-2.3.6/depcomp
unixODBC-2.3.6/exe/
・・・
②./configure
[root@ol6 tmp]# cd unixODBC-2.3.6
[root@ol6 unixODBC-2.3.6]# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
・・・
③make
[root@ol6 unixODBC-2.3.6]# make
make all-recursive
make[1]: Entering directory `/tmp/unixODBC-2.3.6'
Making all in extras
・・・
④make install
[root@ol6 unixODBC-2.3.6]# make install
Making install in extras
make[1]: Entering directory `/tmp/unixODBC-2.3.6/extras'
make[2]: Entering directory `/tmp/unixODBC-2.3.6/extras'
④インストール確認
[root@ol6 unixODBC-2.3.6]# odbcinst -j
unixODBC 2.3.6
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
●ODBC接続設定
①tnsnames.ora設定
DBに接続するためのClient接続情報を設定
[oracle@db01 ~]$ cat $ORACLE_HOME/network/admin/tnsnames.ora
pdb01 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = db01)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdb01)
)
)
②odbcinst.ini設定
odbcinst -j で出力された"DRIVERS"項のファイルパスにあるodbcinst.iniを設定
[oracle@db01 ~]$ cat /usr/local/etc/odbcinst.ini
[odbcOracle18c]
Description = Oracle 18c ODBC driver.
Driver = /u01/app/oracle/product/18.1/dbhome_1/lib/libsqora.so.18.1
③odbcinst.ini設定
odbcinst -j で出力された"USER DATA SOURCES"項のファイルパス(実行ユーザーのHOMEディレクトリ配下) ~/.odbc.iniを設定
[oracle@db01 ~]$ cat ~/.odbc.ini
[DSNOracle18c]
Driver = odbcOracle18c
ServerName = pdb01
④環境変数設定
LD_LIBRARY_PATHを設定
以下は設定例
[oracle@db01 ~]$ cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
umask 022
export ORACLE_HOME=/u01/app/oracle/product/18.1/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=orcl
export NLS_LANG=American_America.AL32UTF8
export LANG=C
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
[oracle@db01 ~]$ . ~/.bash_profile
[oracle@db01 ~]$ env | grep LD_LIBRARY_PATH
LD_LIBRARY_PATH=/u01/app/oracle/product/18.1/dbhome_1/lib:/u01/app/oracle/product/18.1/dbhome_1/lib:/u01/app/oracle/product/18.1/dbhome_1/lib:/u01/app/oracle/product/18.1/dbhome_1/lib:
⑤ODBC接続確認
[oracle@db01 ~]$ isql DSNOracle18c system <pass>
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> select BANNER from v$version;
+---------------------------------------------------------------------------------+
| BANNER |
+---------------------------------------------------------------------------------+
| Oracle Database 18c EE High Perf Release 18.0.0.0.0 - Production |
+---------------------------------------------------------------------------------+
SQLRowCount returns -1
1 rows fetched
SQL>
何らかのエラーが表示されるようであれば、-v オプションをつけることで、エラ
ー内容を知ることができます。
例
[oracle@db01 ~]$ isql DSNOracle18c system <pass> -v
[01000][unixODBC][Driver Manager]Can't open lib '/u01/app/oracle/product/18.1/db home_1/lib/libsqora.so.18.1' : file not found
[ISQL]ERROR: Could not SQLConnect
■参考
・The unixODBC Project home page
http://www.unixodbc.org/download.html
・ODBC Driver Release Notes
https://docs.oracle.com/cd/E96517_01/odbcr/index.html