【UiPath】OracleへのODBC接続が64bit環境で失敗したときの対応

UiPath開発をしていて
OracleデータベースにODBC接続してみるけど
エラーが出てきて失敗‥。

ちょっとハマってしまったので
そのとき解決した内容を
備忘録として残しておこうと思います!

開発環境
OS:Windows10
システムの種類:64bit

UiPathではODBCの64bitデータソースが表示されない

Connectアクティビティで接続してエラー発生

Connectアクティビティで

・ConnectionString
DSN=データソース名;UID=ユーザID;PWD=パスワード
・ProviderName
System.Data.Odbc

で接続してみると

[Microsoft][ODBC Driver Manager] 指定された DSN には、ドライバーとアプリケーションとのアーキテクチャの不一致が含まれています

というエラーが発生…。

32bitデータソースしか選択できない

ちょっと設定が足りないのかと思い
Connectの詳細画面からConnection Wizardを開きました。

use user or system data source name
のドロップダウンから目的のDSN選ぼうとしたが…

ない!!!

色々調べているとこの様な記事を発見。

ODBCの64ビットデータソースがuipathに表示されない

ということで
64bitデータソースは表示されないから
32bitデータソースを作る必要があります!

OracleのODBC32bitデータソースの作り方

Oracle公式サイトから資料をダウンロード

こちらの記事を参考に書いております!
わかりやすく解説!ODBCドライバの設定方法【Oracle(オラクル)】

Oracle公式サイト ←こちらにジャンプ

Instant Client for Microsoft Windows (32-bit) をクリック

③「Basic Package」と「ODBC Package」パッケージをインストール

④2つのZipを同一フォルダに解凍

⑤④のフォルダ内にtnsnames.oraを作成

⑥フォルダ内の「sqresus.dll」を別の場所に複製(コピペ)しておく
※この後の作業で何故か消えてエラーが出るのだ…

環境変数の設定

①コントロールパネルからシステムの環境変数設定へ

②以下を設定
・変数名:TNS_ADMIN
・変数値:解凍したパス

コマンドプロンプトでインストール実行

コマンドプロンプトを管理者として実行

「sqresus.dll」を元に戻す

インストール後に
なぜかフォルダ内からsqresus.dll消えまして。。

その後エラーが出て気づきました。。

ここで複製しておいたものを
フォルダに入れ直しておきましょう!

ODBCデータソースを作成

①「Windowsキー」+「R」から「C:\Windows\SysWOW64\odbcad32.exe」
※これは32bitのアドミニストレーター

②「ユーザーDSN」で「追加

Oracle in instantclient_19_6 を選択し完了

OracleODBCドライバ構成を設定

・データソース名
任意
・TNSサービス名
tnsnames.oraで作ったサービス名が
ドロップダウンで出てくるので
目的のものを選ぶ

⑤接続テストを行い、問題なければ完了!!!