BEGIN DECLARE lcDato VARCHAR(15) DEFAULT ''; DECLARE lnItem,lcChar, lnSuma, lnDigito, lnRetorno INT DEFAULT 0; SET lcDato = LPAD(TRIM(Docto),15,' '); WHILE lnItem <= LENGTH(LcDato) DO SET lnItem = lnItem + 1; SET lcChar = CAST(SUBSTRING(lcDato,lnItem,1) AS UNSIGNED); SET lnSuma = lnSuma + lcChar * ELT(lnItem, 71, 67, 59, 53, 47, 43, 41, 37, 29, 23, 19, 17, 13, 7, 3); END WHILE; -- SELECT lnSuma,lcDato; SET lnSuma = MOD(lnSuma, 11); IF lnSuma=0 OR lnSuma=1 THEN SET lnRetorno := lnSuma; ELSE SET lnRetorno := 11 - lnSuma; END IF; RETURN lnRetorno; END
Esta funcion genera error de ejecucion: / Error de SQL (1292): Truncated incorrect INTEGER value: ' ' / No lo encuentro