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

Como obter o id gerado de uma linha inserida usando ExecuteScalar?


Se você estiver no oracle, precisará usar ExecuteNonQuery e ResultParameter. Não há como escrever isso como consulta.
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);
}