La verdad es que si la meta es esta:
Cita: La primera sirve para comprobar siuna cadena de caracteres de longitud 8 está compuesta por 4 digitos (las 4 primeras posiciones) y 3 digitos(las 3 ultimas posiciones)
Estás haceindolo muy complciado. Ni siquiera tiene sentido usar ASCII().
Con esto devolvería cero (FALSE) si no cumple, o 1 (TRUE), si cumple con el esquema "9999A999", donde "9" es un digito del 0 al 9, y "A" es una lera cualquiera del abecedario.
Código MySQL:
Ver original
DELIMITER $$
RETURN 0;
RETURN 0;
RETURN 0;
RETURN 1;
DELIMITER ;