unixODBCをインストールしてみた 


#●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