オラクルDB(12c)を構築して、次はクライアント側ですが、予定ではクライアント側は影響なしだと思っていました。
元々クライアント側にはオラクルクライアント(11g)がインストール済みでしたので。

結論から記載すると、オラクルDB(12c)のバージョンが関係します。
構築したバージョンは「12.2.0.1.0」です。
「.2」なんです!!!!
細かいテストしたわけではありませんが、「.2」が原因でクライアント側で色々エラーが出て解決にめっちゃはまりました。
「.1」ならば、何もクライアント側に影響はなかったと思います。

色々はまりにはまっていたので、画像ありません。

【流れ】
・旧DBサーバーのOSは、「Windows Server 2008 R2」でそろそろ寿命な感じなので、
新DBサーバーのOSは、「Windows Server 2012 R2」でオラクルも最新の「12.2.0.1.0」を用意しよう!!!
→ ここで「.2」ではなく、「.1」を選んでいればはまることはなかった。

・オラクルDB(12c)の構築完了で、クライアント側からの接続確認(昨日のブログ)ですが、
実はオラクルクライアント経由で接続確認していません!!!
もちろん、オラクルクライアント経由で接続確認するとエラーだからです。

・接続エラーは、(12c)から色々設定が変わってるみたいです。
例:ユーザ/パスワードで大文字小文字判断する 等
対応は2案ありますが、もちろん1案目を選択
※オラクルDBを(12c)なので、クライアントも(12c)の方がスッキリするよねって感じ。
1案目:オラクルクライアントのバージョンアップ
2案目:オラクルDBの設定変更(12cの追加設定を11g設定に変更する)

・で、迷わずオラクルクライアント(11g)「ODTwithODAC1120320_32bit」をアンインストール
※アンインストール方法はググって。

20190909_01

<間違い>
・インストールするオラクルクライアント(12c)を選ぶ。
64Bit版?、それとも32Bit版?
クライアントOSは64Bitなので64Bit版選択!!
→ 「Visual Studio」って32Bitなので、32Bit版をインストールする必要があることを理解していなかった。。。

https://www.oracle.com/technetwork/jp/database/windows/downloads/index-214820-ja.html

20190909_02

20190909_03

・インストール後、クライアント側ソフトで確認
「SQLPLUS」→「接続OK」
20190909_04

「A5:SQL MK-2」→「接続OK」
20190909_05

「Visual Studio 2010」→「接続NG」
<エラー内容>
データベースを開けません。
接続文字列:’Data Source=ORACLEDB;user id=sample;password=***REMOVED***;';
エラー: ‘System.InvalidOperationException:
Oracle クライアント ライブラリを読み込もうとしましたが、BadImageFormatException が発行されました。
この問題は、32 ビットの Oracle クライアント コンポーネントがインストールされている環境で 64 ビット モードを実行すると発生します。
—> System.BadImageFormatException: 間違ったフォーマットのプログラムを読み込もうとしました。
(HRESULT からの例外:0x8007000B)
場所 System.Data.Common.UnsafeNativeMethods.OCILobCopy2(IntPtr svchp, IntPtr errhp, IntPtr dst_locp, IntPtr src_locp, UInt64 amount, UInt64 dst_offset, UInt64 src_offset)
場所 System.Data.OracleClient.OCI.DetermineClientVersion()
— 内部例外スタック トレースの終わり —
場所 System.Data.OracleClient.OCI.DetermineClientVersion()
場所 System.Data.OracleClient.OracleInternalConnection.OpenOnLocalTransaction(String userName, String password, String serverName, Boolean integratedSecurity, Boolean unicode, Boolean omitOracleConnectionName)
場所 System.Data.OracleClient.OracleInternalConnection..ctor(OracleConnectionString connectionOptions)
場所 System.Data.OracleClient.OracleConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
場所 System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
場所 System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
場所 System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
場所 System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
場所 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
場所 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
場所 System.Data.OracleClient.OracleConnection.Open()
場所 DevExpress.Xpo.DB.BaseOracleConnectionProvider.CreateDataBase()’

・「DevExpress」のバージョンが古いからかな?って思ったけど、
色々原因を探すためにググるとここで「Visual Studio」が「32Bit」で動作してる事が判明。
ってことは、オラクルクライアントも「32Bit」を入れないとダメじゃん・・・

・で、迷わずオラクルクライアント(12c)「ODAC121024_x64.zip」をアンインストール

<間違い>
・インストールする32Bit版のオラクルクライアント(12c)を選ぶ。
→ オラクルDBが「12.2.0.1.0」なので「ODTwithODAC122011.zip」を選択した。。。

https://www.oracle.com/technetwork/jp/topics/dotnet/downloads/utilsoft-086879-ja.html

20190909_06

20190909_07

・で、「ODTwithODAC122011.zip」をインストールしようとしたが、インストールが始まらなかった。。。
エラーとかでは無く、DOS画面は出るがそのまま終了って感じ。。。

<正解>
・再度、インストールする32Bit版のオラクルクライアント(12c)を選ぶ。
→ 安定していると希望を込めて「ODTwithODAC121024.zip」を選択

https://www.oracle.com/technetwork/jp/topics/dotnet/downloads/utilsoft-086879-ja.html

20190909_08

20190909_09

・インストール後、再度クライアント側ソフトで確認
「SQLPLUS」→「接続OK」
20190909_04

「A5:SQL MK-2」→「接続OK」
20190909_05

「Visual Studio 2010」→「接続OK」
20190909_10

無事、クライアント側からオラクルDB(12c)に接続出来ました。

【結論】
オラクルDB(12c)の「12.2.0.1.0」は怪しいよ。「.2」ではなく、安定の「.1」方が良いよ。
「Visual Studio」のソフトは「32Bit」で動作するので、オラクルクライアントも「32Bit」をインストールしよう。
オラクルクライアント(12c)の「ODTwithODAC122011.zip」は怪しいよ。「.2」ではなく、安定の「.1」の「ODTwithODAC121024.zip」方が良いよ。