MySQL - store procedure correlativo

 
Vista:
Imágen de perfil de Eduardo
Val: 11
Ha disminuido su posición en 3 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

store procedure correlativo

Publicado por Eduardo (6 intervenciones) el 22/03/2021 23:59:29
Estoy haciendo mis primeras store procedures. Se me ocurrió hacer una que tome el numero de factura actual almacenado en una campo (tiene este formato 'F001-00000006') y lo incremente en uno y grabe este nuevo correlativo en el mismo campo, osea la procedure debería grabar 'F001-00000007':

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
CREATE PROCEDURE `sp_correboleta`(OUT corre_nuevo char(13),IN localid int)
BEGIN
 
DECLARE corre_actual char(13) ;
DECLARE corre_serie char(4) ;
DECLARE corre_numer char(8) ;
 
	SELECT local_correl_boleta INTO corre_actual
        FROM locales
        WHERE local_id = localid ;
 
	SET corre_serie = LEFT( corre_actual , 4 ) ;
    SET corre_numer = RIGHT( corre_actual , 8 ) ;
    SET corre_numer = CONVERT( corre_numer , SIGNED ) + 1 ;
	SET corre_numer = CONVERT( corre_numer , CHAR ) ;
	SET corre_numer = lpad( ltrim(rtrim(corre_numer)) , 8 , '0' ) ;
	SET corre_nuevo = corre_serie + '-' + corre_numer ;
 
    SELECT corre_nuevo ;
 
END

El tema es que no hace lo que yo espero, siempre me devuelve UN SOLO DIGITO, el digito del final y todo los 12 caracteres de la izquierda se pierden.

Alguna idea de que puede estar mal ? - Gracias y saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder