omando @OracleCommand, problema ExecuteNonQuery

Tenho que limpar determinadas tabelas no banco de dados oracle, no entanto, quando estou tendo problemas para executar o seguinte código

public static void ClearDataTables(IList<string> tableNames)
        {
            string connectionString = "CONNECTIONSTRING";
            using (OracleConnection connection = new OracleConnection())
            {
                connection.ConnectionString = connectionString;
                connection.Open();
                foreach (string table in tableNames)
                {
                    OracleCommand command = connection.CreateCommand();
                    string sql = String.Format("DELETE FROM TOA_REPORTING.{0}", table);
                    command.CommandText = sql;
                    command.ExecuteNonQuery();
                }
                connection.Close();
            }
        }

Estou chamando esse método com esta lista

ClearDataTables(new List<string> { "GROUP_DEFINITION", "GROUP_REPORT_EMAIL_LIST", "GROUP_EQUIPMENT_GROUP_STN_XREF"});

Executa bem as duas primeiras tabelas, no entanto, na terceira, fica presa e o aplicativo é executado para sempre ...

O engraçado é que, quando eu alterno "GROUP_REPORT_EMAIL_LIST" e "GROUP_EQUIPMENT_GROUP_STN_XREF", o aplicativo é executado para sempre após atingir o segundo nome da tabel

Então, em conclusão, a função é executada para sempre quando atinge "GROUP_EQUIPMENT_GROUP_STN_XREF". Eu verifiquei que o SQL gerado funciona testando-o no sapo.

Alguém mais encontrou esse problema?

EDIT - As duas primeiras tabelas são realmente limpas quando executada

Soluçã

string connectionString = "CONNECTIONSTRING";
            using (OracleConnection connection = new OracleConnection(connectionString))
            {
                connection.Open();
                OracleCommand command = connection.CreateCommand();
                OracleTransaction trans = connection.BeginTransaction();
                command.Transaction = trans;
                foreach (string table in tableNames)
                {
                    string sql = String.Format("DELETE FROM TOA_REPORTING.{0}", table);
                    command.CommandText = sql;
                    command.ExecuteNonQuery();
                }
                trans.Commit();
            }

TRUNCATE teria sido uma solução muito boa, no entanto, não tenho privilégios para fazê-lo!

questionAnswers(4)

yourAnswerToTheQuestion