martes, 2 de abril de 2013

Cómo completar con ceros a izquierda variables tipo "char" de contenido


Cuando desde un programa se necesita acceder a una base de datos, mediante un campo en formato caracter, pero consistente sólo de dígitos, la búsqueda falla devolviendo un mensaje de registro inexistente. (Por ejemplo, la consulta del código de material ‘15’ en el maestro de materiales).


Esto sucede, por ejemplo, desde la sentencia SELECT, porque el campo utilizado como clave se trata como un “char” y NO se realiza la justificación completando ceros a izquierda, necesaria para "matchear" el campo contenido en la base de datos. Por ejemplo, se efectúa la búsqueda con ‘15’ y no con ‘000000000000000015’.

Para lograr la transformación adecuada del dato, se puede utilizar el módulo de función CONVERSION_EXIT_ALPHA_INPUT que "enmascara" el campo como si fuera numérico, agregando los ceros correspondientes a izquierda según la longitud del campo. La función recibe el dato tipo "char" a convertir y devuelve el dato formateado.


También resulta útil la función CONVERSION_EXIT_ALPHA_OUTPUT que realiza el proceso inverso, es decir, transforma de formato numérico a caracter, por ejemplo para listar el campo en cuestión.


No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.