Intente envolver una declaración de uso con OracleConnection alrededor de su declaración de uso de esta manera:
try
{
using (OracleConnection conn = new OracleConnection(connectionString))
{
using (OracleCommand cmd = new OracleCommand(cmdStr, conn))
{
....
}
}
}
catch (OracleException e)
{
....
}
Esto eliminaría el objeto OracleConnection lo antes posible, incluso cuando se produjera una OracleException dentro de las instrucciones de uso.