sql >> Database teknologi >  >> RDS >> Oracle

Hvordan får man det genererede id fra en indsat række ved hjælp af ExecuteScalar?

Hvis du er på oracle, skal du bruge ExecuteNonQuery og ResultParameter. Der er ingen måde at skrive dette som forespørgsel.

using (OracleCommand cmd = con.CreateCommand()) {
    cmd.CommandText = "insert into foo values('foo','bar') returning id into :myOutputParameter";
    cmd.Parameters.Add(new OracleParameter("myOutputParameter", OracleDbType.Decimal), ParameterDirection.ReturnValue);
    cmd.ExecuteNonQuery(); // an INSERT is always a Non Query
    return Convert.ToDecimal(cmd.Parameters["myOutputParameter"].Value);
}


  1. MySQL UPDATE-forespørgsel med underforespørgsel, der varer evigt

  2. Hvordan sletter man duplikerede poster?

  3. SQL-forespørgsel til gruppering af resultater baseret på rækkefølge

  4. Se lagret procedure/funktionsdefinition i MySQL