The type initializer for 'Oracle.DataAccess.Client.OracleCommand' threw an exception的解决方法
升级Oracle DB 到19c 标准版后,(ODAC)程序报错
- Situation/问题:Oracle DB 升级后,程序部署在安装oracle client 19c 的服务器上,运行时遇到以下报错:
The type initializer for ‘Oracle.DataAccess.Client.OracleCommand’ threw an exception. - Cause/原因:
ODAC(Oracle.DataAccess.dll
)的版本问题 - Solution/解决方案:
- 在Oracle client 的安装目录下
%Oracle Home%/19c_ODAC_32/odp.net/bin/4/Oracle.DataAccess.dll
,复制Oracle.DataAccess.dll
到你程序的bin目录中。
(先删除你程式原有Oracle.DataAccess.dll
引用Reference,再引用刚刚新的Oracle.DataAccess.dll
,重新Build 程序) - 或者从oracle 网站下载,对应版本的ODAC(
Oracle.DataAccess.dll
)到你程序的bin目录中。
Oracle Data Access Components (ODAC) for Windows Downloads: https://www.oracle.com/database/technologies/odac-nuget-downloads.html
- 在Oracle client 的安装目录下