1

Im using this example to get the autonumeric from one insert. Works ok, because I can see "new_id" has the right value. But I got an error when trying to convert to decimal or integer.

System.InvalidCastException: 'Cant Convert type 'Oracle.ManagedDataAccess.Types.OracleDecimal' to type 'System.IConvertible'.'

using (OracleCommand cmd = con.CreateCommand())
{
    cmd.CommandText = "INSERT INTO projects (name) values(:project_name) returning project_id into :new_id";
    cmd.Parameters.Add("project_name", OracleDbType.NVarchar2, ParameterDirection.Input);
    cmd.Parameters.Add("new_id", OracleDbType.Decimal, ParameterDirection.ReturnValue);
    cmd.ExecuteNonQuery();
    decimal result = Convert.ToDecimal(cmd.Parameters["new_id"].Value);
                     ^^^ error here
    return Convert.ToInt16(result);
}

DEBUG value:

enter image description here

Juan Carlos Oropeza
  • 47,252
  • 12
  • 78
  • 118

0 Answers0