Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Inserir conjunto de dados na tabela Oracle


Supondo que você queira fazer um loop sobre uma coleção de linhas e deseja inserir todas elas, eu tentaria com um pseudocódigo como este.
string cmdText = "INSERT INTO MY_INSERT_TEST(Col1, Col2, Col3) VALUES(?, ?, ?)";
using(OdbcConnection cn = getDBConnection())
using(OdbcCommand cmd = new OdbcCommand(cmdText, cn))
{
    cn.Open();
    cmd.Parameters.AddWithValue("@p1", "");
    cmd.Parameters.AddWithValue("@p2", "");
    cmd.Parameters.AddWithValue("@p3", "");
    foreach(DataRow r in dt.Rows)
    {
         cmd.Parameters["@p1"].Value =  r["Column3"].ToString());
         cmd.Parameters["@p2"].Value =  r["Column1"].ToString());
         cmd.Parameters["@p3"].Value =  r["Column2"].ToString());
         cmd.ExecuteNonQuery();
    }
}

Construa uma consulta parametrizada, defina os parâmetros (aqui estão todos os parâmetros do tipo string, precisam ser verificados) e, em seguida, faça um loop nas linhas da tabela de dados atribuindo o valor dos parâmetros da coluna correspondente. Observe que no texto do comando você não escreve diretamente os valores, mas coloca um espaço reservado para o valor real que você fornecerá dentro do loop.