Modify last param in procedure declaration to avoid ambiguity:
create or replace procedure updateStudentResult(id int,
m1 in int,
m2 in int,
m3 in int,
tot out int,
avg out float,
grd out char) -- grade renamed as grd
and replace every occurrence of 'grade := ' to 'grd := '
the following seems to be oversight:
most likely you meant:
'UPDATE students SET total=tot,average=avg,grade=grade from students where sid=id;'
seems to be syntax error
UPDATE students SET