-
Notifications
You must be signed in to change notification settings - Fork 1
odbcメモ
amutake edited this page Oct 9, 2013
·
3 revisions
http://otndnld.oracle.co.jp/tech/linux_win/pdf/ODBC%20for%20Linux.pdf を参考に。 http://docs.oracle.com/cd/E49329_01/readmes.121/b71333/ODBC_IC_Readme_Unix.htm も。
% sudo apt-get install unixodbc-dev unixodbc-bin unixodbc
もしくは、 http://www.unixodbc.org/ の Download からソースコードを落としてくる
% tar xzf unixODBC-2.3.1.tar.gz
% cd unixODBC-2.3.1
% ./configure
% make
% sudo make install
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
からいろいろ落としてくる。
basic, sdk(devel), odbc が必要
export ORACLE_HOME=/usr/lib/oracle/12.1/client64
mv instantclient_12_1 $ORACLE_HOME
cd $ORACLE_HOME/instantclient_12_1 && ./odbc_update_ini.sh {odbcinist.ini があるディレクトリの親のディレクトリ}
をすると、 Driver の場所とかを、 odbcinst.ini
と ~/.odbc.ini
に自動で書き込んでくれる。
.odbc.ini
の ServerName に、 net service name を書き加える。
net service name は、 show parameter service_name
で調べられる。
{net_service_name} =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = {host})(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = {net_service_name})
(SID = {sid})
)
)
import Database.HDBC.ODBC (Connection, connectODBC)
connect :: String -- ^ DSN
-> String -- ^ username
-> String -- ^ password
-> IO Connection
connect dsn uid pwd = connectODBC $ concat
[ "DSN=", dsn, ";"
, "UID=", uid, ";"
, "PWD=", pwd
]