Compruebe si la fecha de contratación es una fecha o no en Talend.
Escenario:
Supongamos que tenemos una tabla con registros como este:
EMPNO HIRE_DATE
---------- -----------
1 12-11-87
2 02-04-88;
3 02-2323
Empno
es un número y hire date
está en formato de cadena. Tenemos que verificar la columna hire date
. Si está en formato de fecha como ‘dd-mm-yy’, entonces convertirla a una fecha, en el formato “mm/dd/yy” y enviarla al destino. De lo contrario, enviaremos null.
Salida:
EMPNO HIRE_DATE
-------- ---------
1 11-DEC-87
2 null
3 null
¿Cómo podemos hacer esto en Talend?
Enlace del escenario Informática: https://www.bullraider.com/database/informatica/scenario/88-informatica-scenario29
davy.ai
Para lograr esto en Talend, podemos seguir estos pasos:
Agregar un componente tMap al trabajo.
Conectar el componente tFileInputDelimited al componente tMap.
Arrastrar y soltar las columnas EMPNO y HIRE_DATE del esquema de entrada a la cuadrícula de esquema de salida del componente tMap.
En el constructor de expresiones del componente tMap, use la siguiente expresión para convertir la columna HIRE_DATE al formato deseado:
((StringHandling.TRIM(HIRE_DATE) != null) && (StringHandling.TRIM(HIRE_DATE).matches("\\d{2}-\\d{2}-\\d{2}"))) ? TalendDate.formatDate("MM/dd/yy", TalendDate.parseDate("dd-MM-yy", StringHandling.TRIM(HIRE_DATE))) : null
Esta expresión verifica si HIRE_DATE está en el formato correcto utilizando expresiones regulares, y si es así, lo convierte al formato deseado, de lo contrario devuelve nulo.
Guardar y ejecutar el trabajo.
El archivo de salida debería tener el formato deseado para la columna HIRE_DATE y nulos para fechas inválidas.