目次
ODBCとは
Open Database Connectivityの頭文字をとってODBC(オーディービーシー)と読みます。 Microsoft社が制定したもので、Windowsで動作するデータベース関連のソフトウェア(OracleやSQL Serverなど)を共通の仕組みでデータのやり取りをするためのものです。 1つのシステムで複数のデータベースを扱う場合に便利ですね。Oracle ODBCドライバのダウンロード
ダウンロードは下記サイトより可能です。(別タブで開くようにしときました) https://www.oracle.com/database/technologies/instant-client/downloads.htmlダウンロード対象
今回インストールした対象バージョンは下記の2つです。今回は64bit版で行いますが、32bit版でもやり方は同じです。- instantclient-basic-windows.x64-11.2.0.4.0.zip
- instantclient-odbc-windows.x64-11.2.0.4.0.zip
Oracle ODBCドライバのインストール
ODBCドライバのターゲットとなるフォルダを作成
まずは、ドライバを設定するにあたって設定ファイルなどのファイルを格納しておくフォルダを作成します。 場所もフォルダ名も任意です。 下の画像ではCドライブ直下に”OracleInstantClient”という名称でフォルダを作成しています。
ダウンロードしたOracleファイルを全てターゲットフォルダへコピー
先ほどダウンローしたファイル2つはzipファイルとなっているはずなので、解凍して中身を全て”OracleInstantClient”フォルダにコピーします。
環境変数の設定
環境変数の設定を行います。 コントロールパネル > システム > システムの詳細設定 > システムのプロパティの”詳細設定タブ”から環境変数ダイアログが開けます。 ”システム環境変数(S)”の方に対して次の環境変数を追加・編集を行います。- Path
- TNS_ADMIN
- NLS_LANG
Path
ターゲットフォルダのパスを”変数値”に追記します。
TNS_ADMIN
ターゲットフォルダのパスを”変数値”に追記します。
NLS_LANG
”tnsnames.ora”ファイルを作成
”tnsnames.ora”というファイル名でファイルを作成します。作成したらテキストエディタ(メモ帳など)でそのファイルを開き下記にある接続情報を記載します。- 接続名
- ホスト名
- ポート番号(デフォルトは”1521”)
- サービス名
① =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ②)(PORT = ③))
)
(CONNECT_DATA =
(SERVICE_NAME = ④)
)
)
コマンドプロンプトでインストール実行
コマンドプロンプトを起動し下の画像にあるようにインストールを行います。 ここまででODBCドライバを作成するための前準備は完了です。
ODBCの設定
管理ツール
コントロールパネル > 管理ツールからODBCデータソースを選択します。 今回は64bit版が対象なので”ODBCデータソース(64ビット)”を選択します。
ODBCデータソース
ODBCデータソースアドミニストレータダイアログが開いたら”システムDSN”タグを選択し、ここに作成していきます。 ”追加”ボタンをクリックし、データソースの追加を行います。
”Oracle in instantclient_11_2”を選択し、”完了”ボタンをクリックします。
Oracle ODBCドライバ構成
”データソース名”と”TNSサービス名”は必須なので、それぞれ入力して”接続テスト”ボタンをクリックします。- データソース名:ODBCドライバの名称(任意の名前)
- TNSサービス名:tnsnames.oraファイルで記載した。接続名がリスト表示されていると思うので対象のものを選択
”ユーザー名”と”パスワード”を入力し、”OK”ボタンをクリック
下の画面が表示されたら成功です。
接続テストが完了したら、”OK”ボタンをクリックします。
完了
これでODBCドライバの作成は完了です。”OK”ボタンをクリックしてダイアログを閉じます。
関連記事
「本業の給料だけでは、将来が少し不安…」「自分の技術、会社の外で通用するんだろうか?」「新しいスキルを身につけたいけど、学ぶだけじゃなく実践で使ってみたい」 もしあなたがシステムエンジニア(SE)として、このような思いを少しで[…]
実務でODBC設定を確認するときのポイント
ODBC設定は、画面上で接続テストが通れば完了に見えます。しかし実務では、接続先、ドライバの種類、32bitと64bitの違い、利用するアプリケーション側の設定まで確認しないと、別の端末や別の利用者で動かないことがあります。
特にOracle接続では、TNS設定、接続文字列、認証情報、クライアントのバージョン差分でつまずきやすいです。自分の端末だけで動いた場合でも、運用で使う端末やサーバー側で同じ条件になっているかを確認する必要があります。
接続できないときの切り分け
- 接続先のホスト名やサービス名が正しいか
- 利用アプリが32bit版か64bit版か
- ODBCドライバの種類が環境と合っているか
- ネットワークや権限で接続が止まっていないか
- 他端末でも同じエラーになるか
設定系の問題は一度に変更すると原因が分からなくなります。切り分けの考え方は、開発環境で動かないときの切り分け方も参考になります。
また、設定値を変更した場合は、変更前の内容をメモしておくと復旧しやすくなります。接続設定は小さな差分でも影響が出るため、作業記録を残すことが重要です。
