Baixei ODAC121021Xcopy_32bit do site da Oracle e extraí o zip e instalei usando o arquivo install.bat.
Eu enfrentei o mesmo problema. Obrigado Omaraguirre. Conforme declarado por Omaraguirre, referenciou o Oracle.ManagedDataAccess.dll e o problema foi corrigido. Consegui abrir a conexão sem nenhum problema.
Mas eu queria descobrir por que Oracle.DatAccess.dll lança exceção de referência nula ao tentar abrir a conexão. Descobri que as dlls de suporte como (oci.dll, ociwin32.dll etc.) são necessárias para abrir a conexão sem erros. Então, copiei todos os arquivos dll de instantclient_12_1 (esta pasta é encontrada dentro da pasta ODAC121021Xcopy_32bit extraída) para o diretório bin instalado do oracle (C:\oracle\bin , na minha máquina). Agora o Oracle.DataAccess.dll não gera erro ao abrir a conexão.
Mais uma coisa é Oracle.ManagedDataAccess.dll irá carregar todos os arquivos DLL de suporte internamente. Mas o Oracle.DataAccess.dll requer que as dlls de suporte estejam presentes no diretório do aplicativo em execução (no caso de aplicativos console/WinForm) ou no diretório bin instalado do oracle (no caso do aplicativo Web). Diferença entre Oracle.DataAccess.dll e Oracle. As dlls ManagedDataAccess.dll podem ser encontradas @ https://docs.oracle .com/database/121/ODPNT/intro003.htm#ODPNT131