Can I reset cursor's position to the beginning?
you need to declare your cursor as scroll, like this
declare c scroll cursor for (select statement);
then at any time for locating to the first just use the following
fetch first from c;
Another option that can be used that doesn't force you to change the type of cursor is simply to close the cursor and re-open it:
CLOSE user_cursor
OPEN user_cursor
But the scroll
option will be cheaper in terms of resource usage, if that's a change you can accept.