sql >> Base de Datos >  >> RDS >> Oracle

Insertar conjunto de datos en la tabla de Oracle

Supongamos que desea recorrer una colección de filas y desea insertarlas todas, entonces intentaría con un 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();
    }
}

Cree una consulta parametrizada, defina los parámetros (aquí están todos los parámetros de tipo cadena, deben verificarse) y luego recorra las filas de la tabla de datos asignando el valor de los parámetros de la columna correspondiente. Tenga en cuenta que en el texto del comando no escribe directamente los valores, sino que coloca un marcador de posición para el valor real que proporcionará dentro del ciclo.