Вам не нужно создавать хранимую процедуру, но она не будет работать с простым оператором обновления.вам нужно по крайней мере что-то вроде этого как выражение:
DECLARE t_ids id_array;
BEGIN
UPDATE table
SET field1 = :value
WHERE field2 = :searchFor
RETURNING key_column BULK COLLECT INTO t_ids;
OPEN :rcursor FOR SELECT * FROM TABLE(cast(t_ids as id_array));
END;
Это вернет курсор ref, который вы могли бы обработать в c #
OracleCommand command = new OracleCommand("<the sql query above>", connection);
command.BindByName = true;
// Add the parameters for update statement
// ...
// Add the out parameter for the ref cursor
OracleParameter refCursor = new OracleParameter("rcursor", OracleDbType.RefCursor);
refCursor.Direction = ParameterDirection.ReturnValue;
command.Parameters.Add(returnCursor);
var reader = command.ExecuteReader();
OracleDataAdapter dataAdapter = new OracleDataAdapter(command);
DataTable dt = new DataTable();
dataAdapter.Fill(dt);