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

Come ottenere l'ID generato da una riga inserita utilizzando ExecuteScalar?

Se sei su Oracle, devi usare ExecuteNonQuery e ResultParameter. Non c'è modo di scriverlo come query.

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