sql >> Database >  >> RDS >> Oracle

Hoe haal ik de gegenereerde id uit een ingevoegde rij met behulp van ExecuteScalar?

Als je op oracle zit, moet je ExecuteNonQuery en ResultParameter gebruiken. Er is geen manier om dit als query te schrijven.

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. Oracle JDBC-tekenset en limiet van 4000 tekens

  2. Nginx-configuratiemachtigingen en eigendom

  3. Een MySQL-query doden tijdens uitvoering met PHP en AJAX

  4. Python en MySQLdb - Het gebruik van DROP TABLE IF EXISTS lijkt een uitzondering te veroorzaken