ODBCでOracle Autonomous Databaseに接続してみた


はじめに

本記事では、Oracle Cloudの自律型データベースサービス(Autonomous Database)に
ODBC接続でアクセスする方法を紹介します。
今回はAutonomous Data Warehouse(ADW)で作業しますが、Autonomous Transaction Processing(ATP)でも内容は同じです。

前提条件

Instant Clientの導入

下記URLよりInstant Clientをダウンロードし、インストール

*ODBC接続を利用するアプリケーションが32bitの場合、32bit版をダウンロード

ウォレットのダウンロード

Autonomous Databaseに接続するためには、Wallet(zip形式のファイル)をローカルにダウンロードする必要があります。

Oracle Cloudのコンソール画面よりAutonomous Databaseのページに移動

DB接続をクリック

任意のパスワードを設定し、ウォレットをダウンロードします

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

sqlnet.oraを編集します。

WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="?/network/admin")))

↓  DIRECTORY="?/network/admin"の部分をウォレットの解凍先フォルダのパスに書き換える

WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="<解凍先フォルダのパス>")))

ODBC設定

Windowsのスタートメニューから「ODBC」で検索→「ODBCデータソース」を選択
*ODBC接続を利用するアプリケーションが32bitの場合、32bit版を選択

ユーザーDSNより「追加」→任意のOracle Clientを選択

以下の項目を入力します。

入力項目 内容
データソース名 任意
説明 任意(未入力でもOK)
TNSサービス名 下記参照
ユーザーID admin

TNSサービス名の書式は、[DBインスタンス名]_[サービス接続詞]です。
サービス接続詞は以下が使用可能です。

  • tpurgent(ATPのみ): 時間的なクリティカル・トランザクション処理操作のための優先度が最も高いアプリケーション接続サービス。 この接続サービスは、手動の並列処理をサポートしています。

  • tp(ATPのみ): トランザクション処理操作の一般的なアプリケーション接続サービス。 この接続サービスは、並列処理を使用せずに実行されます。

  • high: レポートおよびバッチ操作のための優先度の高いアプリケーション接続サービスです。 すべての操作は並列で実行され、キューに入れられます。

  • medium: レポート操作とバッチ操作のための一般的なアプリケーション接続サービス。 すべての操作は並列で実行され、キューに入れられます。 このサービスを使用すると、並列度は4 (4)に制限されます。

  • low: レポートまたはバッチ処理操作では、最も優先度の低いアプリケーション接続サービスです。 この接続サービスは、並列処理を使用せずに実行されます。

接続確認

接続テスト→ADBのパスワードを入力→OK

疎通確認がとれたらドライバ構成を保存します。

補足

ADOからAutonomous DBに接続する場合の設定例です。

ConnectionString = "DSN=[データソース名];UID=admin;PWD=[adminユーザのパスワード]"
oraCon.ConnectionString = ConnectionString
oraCon.Open

参考URL

Autonomous Database作成手順
https://docs.oracle.com/cd/E97706_01/Content/Database/Tasks/adbcreating.htm

Instant Client導入手順
https://docs.oracle.com/cd/E90713_01/OREAD/installing-oracle-database-instant-client.htm

ODBC設定
https://blog.hrendoh.com/how-to-register-oracle-instant-client-as-odbc-datasource/

ADOからOracle Databaseに接続
https://excelwork.info/excel/databaseoracleodbc/