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':
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.
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


0