Si el campo es un varchar (no es mi culpa... ya estaba asi cuando trabaje) tengo un procedimiento en firebird que genera los numeros desde hasta un intervalo. Comparas y listo.
Un ejemplo de la llamada al proc es esta GENERCOD('S0000000',5603,5750)
Disfrutenlo. Alguna mejora avisenme y propongan
CREATE PROCEDURE GENERCOD(
CAMPO VARCHAR(10) CHARACTER SET NONE,
DESDE SMALLINT,
HASTA SMALLINT)
RETURNS(
RESUL VARCHAR(10) CHARACTER SET NONE)
AS
DECLARE VARIABLE X VARCHAR(10);
DECLARE VARIABLE T VARCHAR(10);
DECLARE VARIABLE I INTEGER;
DECLARE VARIABLE LA INTEGER;
DECLARE VARIABLE LB INTEGER;
BEGIN
I=DESDE;
WHILE (I<=HASTA) DO BEGIN T= CAST(I AS VARCHAR(10)); LA=STRLEN(CAMPO); LB=STRLEN(I); LA=LA-LB; RESUL=SUBSTR(CAMPO,1,LA); RESUL=RESUL||T; SUSPEND; I=I+1; END END
No hay comentarios:
Publicar un comentario