Ponieważ DECLARE workval bigint(20);
linia jest pierwszą ze średnikiem na końcu, podejrzewam, że zapomniałeś zmienić ogranicznik przed wprowadzeniem kodu funkcji (chociaż zależy to od klienta, którego używasz).
Spróbuj zmienić kod na:
DELIMITER #
CREATE FUNCTION nextval (seq_name varchar(100))
...
END#