When the parameter name of the stored procedure is the same as the table field name of the update statement, a problem is caused: "field association is ambiguous."
v_sql := 'UPDATE public.student SET name = ' || E'\'' || update_student.name || E'\'' || ' WHERE id = ' || E'\'' || id || E'\'' || ';'; EXECUTE v_sql;
I don't even want to try and understand or explain how broken the above might be...but I doubt it does what you think plus its vulnerable to SQL injection.