Oracle Cloud Infrastructure（OCI）の Autonomous Database に ODBC 接続してみる

Oracle Cloud Infrastructure（OCI）の Autonomous Database に ODBC 接続してみようと思い、マニュアルや資料を探しましたが、これといったわかりやすい情報がないため、実際に接続した際の手順を記載しておきます。

※今回はクライアントにWindows10を利用しています。

### 1.Oracle Clientのインストール

まずは、Oracle Clientをインストールします。

#### 1-1.Instant Clientのダウンロード

以下のサイトから、Instant Clientをダウンロードします。

https://www.oracle.com/jp/topics/technologies/download-instant-client.html

クライアントマシンのOSに合わせて、64bit版の「Basic Package」と「ODBC Package」をダウンロードします。

今回は Microsoft Windows (x64) 64-bit の Version 19.8.0.0.0 をダウンロードしました。

#### 1-2.Instant Clientの解凍

ダウンロードした2つのzipファイルを解凍します。
注意点として、解凍したファイルを同じフォルダにまとめます。
今回は、C:\OracleClient19.8 にまとめました。

#### 1-3.ODBCドライバーのインストール

管理者モードでコマンド・プロンプトを開き `odbc_install JA` を実行します。

```
C:\OracleClient19.8>odbc_install JA
Oracle ODBC Driver is installed successfully.
```

### 2.ウォレットのダウンロード＆編集

次に、Autonomous Databaseに接続するためのウォレットをダウンロードし、クライアント環境に応じて編集を行います。

#### 2-1.ウォレットのダウンロード

OCIコンソールで接続する Autonomous Databaseの詳細ページを開き「DB接続」ボタンを押します。

ウォレット・タイプを選択し（通常は「インスタンス・ウォレット」）、「ウォレットのダウンロード」ボタンを押します。

![wallet.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694576/9c4e0918-c666-c3f2-fe00-80bfd092920d.png)

ウォレットのパスワードを指定して、「ダウンロード」ボタンを押して、ウォレットファイルを任意のフォルダに保存します。

![wallet_pass.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694576/cdde535f-a6bb-e4e7-f5aa-2bfff91fa763.png)

#### 2-2.sqlnet.ora の編集

ダウンロードしたウォレットファイルを任意のフォルダに解凍します。

解凍後、メモ帳などで、sqlnet.oraファイルを開き、DIRECTORY属性をウォレットファイルを解凍したフォルダに変更します。
※解凍したフォルダはフルパスで指定します。

【変更前】
<table><tr><td>WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = <font color="Red">(DIRECTORY="?/network/admin")</font>))
SSL_SERVER_DN_MATCH=yes
</td></tr></table>

【変更後】
<table><tr><td>WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = <font color="Red">(DIRECTORY="解凍したフォルダ")</font>))
SSL_SERVER_DN_MATCH=yes
</td></tr></table>

今回は Instant Clientと同じ場所（C:\OracleClient19.8）に解凍したため、以下のように指定しました。

<table><tr><td>
WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = <font color="Red">(DIRECTORY="C:\OracleClient19.8")</font>))<br>
SSL_SERVER_DN_MATCH=yes
</td></tr></table>

#### 2-3.環境変数の設定

以下の2つの環境変数を設定します。

変数名：TNS_ADMIN
変数値：ウォレットを解凍したフォルダ（今回の例だと「C:\OracleClient19.8」）

変数名：NLS_LANG
変数値：Japanese_Japan.JA16SJISTILDE（こちらは必要に応じてクライアント側の文字セットを設定）

今回は、Windows10で以下の画面より設定しました。

スタートメニューより、Windowsシステムツール＞コントロールパネル
システムとセキュリティ＞システム
システムの詳細設定
詳細設定タブで「環境変数」ボタン
画面下半分のシステム環境変数セクションの「新規」ボタンより設定

![env.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694576/10c74b7d-2f00-94cc-61e3-7757db4eb84f.png)

### 3.ODBCデータソースの設定

最後に ODBCデータソースの設定を行います。

スタートメニューより、Windows管理ツール＞ODBCデータソース（64ビット）を選択。

ODBCデータソース・アドミニストレータ画面で「追加」ボタンを押す。

![odbc1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694576/1d1bb2e2-4ce9-dc3f-58a2-11e55635d4cc.png)

データソースに先ほどインストールした、Oracle Clientを選択して「完了」ボタンを押す。

![odbc2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694576/9bb4abcd-2d0b-b918-1e59-3628d214f87b.png)

Oracle ODBCドライバー構成画面で、以下の内容を設定

データソース名：任意の名前
説明：説明を記述
TNSサービス名：選択リストより、high/medium/lowなどを選択
ユーザーID：Autonomous Databaseのデータベース・ユーザー名

※ここで、TNSサービス名が選択できない場合は「2-3.環境変数の設定」が誤っている可能性があります。

※下半分（アプリケーション・タブなど）は必要に応じて設定（今回はデフォルトのままとしました）

![odbc3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694576/287b6058-4f47-a663-f048-59ad9c632682.png)


「接続テスト」ボタンを押します。

パスワードを聞かれるので入力して、「OK」ボタンを押します。

![odbc4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694576/c314be08-0134-ef7f-73b0-16f228a75228.png)

正常に接続できれば、設定完了です。

![odbc5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694576/ffbe267a-3949-7ba6-8dba-8ae1b0b9de72.png)

最後に「OK」ボタンを押して、設定を保存します。

![odbc6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694576/317b89e9-c856-2196-675f-70fdb3e296e3.png)

設定後は実際にデータベースにアクセスするツールより、作成したODBCデータソースを利用して、Autonomous Databaseに接続します。