The extensive use of GOTO statements is generally not recommended. For details, see GOTO statement in SQL procedures at ibm.com.
Instead of jumping back to a previous statement using GOTO, consider using a loop.
Instead of exiting the WHILE loop with GOTO, consider using other control-of-flow statements (for example, RETURN or BREAK).
Example (Oracle):
CREATE PROCEDURE test(n INT) AS
DECLARE
x INT;
BEGIN
x := 0;
GOTO a;
<<a>> x := 1;
IF (n = 0) THEN
GOTO a;
END IF;
WHILE TRUE
LOOP
GOTO b;
END LOOP;
<<b>> x := 3;
END;