#この記事の目的
経験的にODACに後方互換性があることは知っていたのですが、具体的にどのバージョンのODACがどのバージョンのOracle DBに接続可能かを、公式ドキュメントをベースにまとめてみたところ、意外と面白い知見が得られたので共有したいと思います。(2020/3/11現在)。
##ODACの各バージョンと接続可能なOracle DBの関係
名称 | ODAC Ver | 別名 | 32/64bit | 対応OS | .NET Framework要件 | 接続可能DB |
---|---|---|---|---|---|---|
ODAC 19c Release 1 | 19.3.0.0.0 | ODAC 19c | 32/64 | x64: 10, 8.1, 2019, 2016, 2012R2 | ※.NET Framework 3.5 SP 1 or later up to .NET Framework 4.8 | Oracle Database 11g Release 2 (11.2.0.4) or later |
ODAC 18c Release 1 | 18.3.0.0.0 | ODAC18c ODAC 18.3 |
32/64 | x64: 10, 8.1, 7, 2016, 2012R2, 2012 | ※.NET Framework 3.5 SP 1 or later up to .NET Framework 4.7.x | Oracle Database Server (Oracle 11g Release 2 or later) |
ODAC 12.2c Release 1 | 12.2.0.1.0 | ODAC 12.2 | 32/64 | x64: 10, 8.1, 8, 7, 2016, 2012R2, 2012 | ※.NET Framework 3.5 SP 1 or later up to .NET Framework 4.7 | Access to an Oracle Database Server (Oracle 10g Release 2 or later) |
ODAC 12c Release 4 | 12.1.0.2.4 | ODAC 12.1 | 32/64 | 32bit: 10, 8.1, 8, 7, 2008 x64: 10, 8.1, 8, 7, 2012, 2012R2, 2008R2, 2008 |
※.NET Framework 3.5 SP 1 or later up to .NET Framework 4.6 | Access to an Oracle Database Server (Oracle 10g Release 2 or later) |
ODAC (11.2.0.3.0) | 11.2.0.3.0 | ODAC 11.2 | 32/64 | 32bit: 7, 2008, Vista, 2003, 2003R2, XP x64: 7, 2008R2, 2008, Vista, 2003, 2003R2, XP |
.NET Framework 4, including support for Entity Framework 4, 4.1, and 4.2. | Access to an Oracle Database Server (Oracle 9i Release 2 or later) |
OSの略称は以下の通り
7: Windows 7, Vista: Windows Vista, 2008: Windows Server 2008, 2008R2: Windows Server 2008 R2, XP: Windows XP, 2003: Windows Server 2003, 2003R2: Windows Server 2003 R2 8: Windows 8, 8.1: Windows 8.1, 10: Windows 10, 2012: Windows Server 2012, 2012R2: Windows Server 2012 R2, 2016: Windows Server 2016, 2019: Windows Server 2019
※ODP.NET Unmanageed Driverに関してのみ記載
##この表から読み取れること
まとめてみると、後方互換ではなく前方互換(!)に対応していました。とりあえず、ODACが動いていればDBサーバーが更改されていてもつながるということが分かりました。
ただし、インストール可能なOSや対応する.NET Frameworkによって使えなくなるODACのバージョンが存在します(上の例では 11g)。したがって、初めの段階でどのODACをインストールすべきかは、インストールするOSのバージョンとインストールされている.NET Frameworkのバージョンを確認したうえで決定する必要がでてきます。
Windows 10の場合、特別な事情でOS自体の更新を止めていない場合、半期チャネルでOSが更新されますし、Windows Updateで.NET Frameworkの更新が配布される場合もあります。10 May 2019 Updateで.NET Framework 4.8が配布されているWIndows 10 PCが多いと思いますが(この記事を書いた時点では)、上記の表に従うとODAC 19cをインストールする必要があることになります。
19c以前のODACを利用した場合、(可能性は低いですが)思わぬ機能を用いた際にエラーが発生する可能性があるということだと読み取れるので、インストールの際には注意しましょう。
蛇足になりますが、Windows Updateなどで勝手に.NET Frameworkが上がってしまった場合など、ODACの再インストールをする必要がある場合は、アンインストール後にレジストリと環境変数からOracleに関連するものを削除してからの方がよいと思われます。
###出典
ODAC
https://www.oracle.com/technetwork/topics/dotnet/downloads/install193-5838973.html
https://www.oracle.com/technetwork/topics/dotnet/downloads/install183-5191071.html
https://www.oracle.com/database/technologies/install-odac-12c-122010.html
https://www.oracle.com/database/technologies/install-odac-12c-121024.html
https://www.oracle.com/technetwork/topics/dotnet/downloads/install112030-1440546.html
.NET Framework バージョン及び依存関係
https://docs.microsoft.com/ja-jp/dotnet/framework/migration-guide/versions-and-dependencies