sql >> Databasteknik >  >> RDS >> Oracle

Infoga datamängden i Oracle Table

Om du antar att du vill loopa över en samling rader och du vill infoga alla så skulle jag försöka med en pseudokod som denna.

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();
    }
}

Bygg en parametriserad fråga, definiera parametrarna (här är alla parametrar av strängtyp som måste kontrolleras) och loop sedan över raderna i datatabellen och tilldelar parametrarnas värde från motsvarande kolumn. Lägg märke till att i kommandotexten skriver du inte direkt värdena utan du lägger en platshållare för det faktiska värdet som du kommer att ange inuti slingan.




  1. Ställa in främmande nyckel med annan datatyp

  2. MySQL dubbeltypsjämförelse misslyckas

  3. PDO SHOW TABLES array

  4. Att använda SUM så att NULL i kolumner gör summan NULL