DELIMITER $$
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`vehicle_checkNumberPlate`(
	vNumberPlate VARCHAR(10),
	vCountryCodeFk VARCHAR(2)
)
BEGIN
/**
 * Comprueba si la matricula pasada tiene el formato
 * correcto dependiendo del pais del vehiculo.
 *
 * @param vNumberPlate Número de matricula
 * @param vCountryCodeFk Código de pais
 */
	DECLARE vRegex VARCHAR(45);

	IF vCountryCodeFk IS NULL THEN
		SET vRegex = '^[A-Z0-9 -]{6,12}$';
	ELSE
		SELECT regex INTO vRegex
			FROM vehiclePlateRegex
			WHERE countryCodeFk = vCountryCodeFk;
	END IF;

	IF NOT vNumberPlate REGEXP BINARY (vRegex)THEN
		CALL util.throw(CONCAT('La matricula ', vNumberPlate,
			' no es valida', IF(vCountryCodeFk IS NOT NULL,
			CONCAT(' para ', vCountryCodeFk), '')));
	END IF;
END$$
DELIMITER ;
