Amazon

2013年10月9日水曜日

Oracle ODBC for Linux

OTNのインスタントクライアントと下記のURLを参考に設定しました。 http://otndnld.oracle.co.jp/tech/linux_win/pdf/ODBC%20for%20Linux.pdf

インストール

必要なファイルをダウンロードして適当なディレクトリの下に展開します。
baseとodbcは必須でsqlplusは動作確認用です。
$ pwd
/opt
$ ls *.zip
instantclient-basic-linux.x64-12.1.0.1.0.zip  instantclient-odbc-linux.x64-12.1.0.1.0.zip  instantclient-sqlplus-linux.x64-12.1.0.1.0.zip
$ ls instantclient_12_1/
BASIC_README        ODBC_IC_Readme_Unix.html  genezi      libclntsh.so.12.1      libocci.so.12.1  libons.so         libsqlplusic.so   odbc_update_ini.sh  sqlplus
ODBCRelnotesJA.htm  SQLPLUS_README            glogin.sql  libclntshcore.so.12.1  libociei.so      liboramysql12.so  libsqora.so.12.1  ojdbc6.jar          uidrvci
ODBCRelnotesUS.htm  adrci                     help        libnnz12.so            libocijdbc12.so  libsqlplus.so     network           ojdbc7.jar          xstreams.jar
$

Oracleの設定

環境変数の設定

/etc/profile.dに必要な環境変数を設定します。
$ cat /etc/profile.d/oracle.sh
# SQL*Plus
if [ -n $ORACLE_HOME ]
then
    ORACLE_HOME=/opt/instantclient_12_1
    export ORACLE_HOME
    if [ -n LD_LIBRARY_PATH ] ; then
        LD_LIBRARY_PATH=/opt/instantclient_12_1
    else
        LD_LIBRARY_PATH=/opt/instantclient_12_1:$LD_LIBRARY_PATH
    fi
    export LD_LIBRARY_PATH
    PATH=$ORACLE_HOME:$PATH
fi
$

接続情報の設定と動作確認

tnsnames.oraに接続情報を設定してsqlplusで接続を確認します。
$ mkdir -p $ORACLE_HOME/network/admin
$ cat $ORACLE_HOME/network/admin/tnsnames.ora
XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )
$
$ sqlplus scott/tiger@XE

SQL*Plus: Release 12.1.0.1.0 Production on Wed Oct 2 10:02:45 2013

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

ODBCの設定

unixODBCの設定をします。
unixODBCは、yumかaptのパッケージかソースからコンパイルしてインストールされている想定です。
/usr/local/etc/odbcinst.iniにODBCドライバの名前、説明、ドライバー本体のシェアードライブラリファイルを登録します。
この登録は、DB製品単位です。
$ cat /usr/local/etc/odbcinst.ini
[odbcOracle12g]
Description = Oracle 12g ODBC driver.
Driver = /opt/instantclient_12_1/libsqora.so.12.1
$ ls  /opt/instantclient_12_1/libsqora.so.12.1
/opt/instantclient_12_1/libsqora.so.12.1
$
次に$HOME/.odbc.iniに、個々の接続を設定します。
接続名(DSNOracle12g)と先ほど登録したドライバ、ServerNameにtnsnames.oraに登録した名前を指定するとODBC接続の設定が完了です。
あとは、isqlというunixODBCのクライアントで接続できればOKです。
$ cat ~/.odbc.ini
[DSNOracle12g]
Driver = odbcOracle12g
ServerName = XE
$ isql DSNOracle12g scott tiger
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL>

0 件のコメント: