Extracción Mapuche - "ERROR: invalid input syntax for type bytea"

Hola

Tenemos instalada la versión 6.9.0 de Wichi y tenemos un error en el ETL que extrae datos de Mapuche:

2021-07-28 18:56:21,660 ERROR [org.pentaho.di] 2021/07/28 18:56:21 - ft_lt_legajos.0 - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : org.pentaho.di.core.exception.KettleDatabaseException:
2021/07/28 18:56:21 - ft_lt_legajos.0 - An error occurred executing SQL:
2021/07/28 18:56:21 - ft_lt_legajos.0 - SELECT distinct 202106 AS periodo_info,
2021/07/28 18:56:21 - ft_lt_legajos.0 - dh01.nro_legaj,
2021/07/28 18:56:21 - ft_lt_legajos.0 - trim(dh01.desc_appat)::BYTEA AS apellido,
2021/07/28 18:56:21 - ft_lt_legajos.0 - trim(dh01.desc_nombr)::BYTEA AS nombre,
2021/07/28 18:56:21 - ft_lt_legajos.0 - CASE WHEN dh01.tipo_estad = ‘A’ THEN 1 ELSE 0 END AS tipo_estado,
2021/07/28 18:56:21 - ft_lt_legajos.0 - dh01.tipo_sexo AS sexo,
2021/07/28 18:56:21 - ft_lt_legajos.0 -
2021/07/28 18:56:21 - ft_lt_legajos.0 - CASE WHEN ((6) - extract(MONTH FROM dh01.fec_nacim)) < 0
2021/07/28 18:56:21 - ft_lt_legajos.0 - THEN ((2021 - extract(YEAR FROM dh01.fec_nacim)) - 1)
2021/07/28 18:56:21 - ft_lt_legajos.0 - WHEN (((6) - extract(MONTH FROM dh01.fec_nacim)) = 0) AND (extract(DAY FROM dh01.fec_nacim) > 1)
2021/07/28 18:56:21 - ft_lt_legajos.0 - THEN (2021 - extract(YEAR FROM dh01.fec_nacim) - 1)
2021/07/28 18:56:21 - ft_lt_legajos.0 - ELSE (2021 - extract(YEAR FROM dh01.fec_nacim)) END AS anios,
2021/07/28 18:56:21 - ft_lt_legajos.0 - dh01.fec_nacim,
2021/07/28 18:56:21 - ft_lt_legajos.0 - (SELECT dh09.codc_estcv FROM mapuche.dh09 WHERE dh09.nro_legaj = dh01.nro_legaj) AS estado_civil,
2021/07/28 18:56:21 - ft_lt_legajos.0 - (SELECT s.codc_nivel::BYTEA FROM mapuche.dh06 p, mapuche.dh33 s,mapuche.dh83 t WHERE p.nro_legaj = dh01.nro_legaj AND p.codc_titul = s.codc_titul
2021/07/28 18:56:21 - ft_lt_legajos.0 - AND t.codc_nivel = s.codc_nivel ORDER BY t.nro_jerar DESC LIMIT 1) AS nivel_estudio,
2021/07/28 18:56:21 - ft_lt_legajos.0 - (SELECT s.codc_titul::BYTEA FROM mapuche.dh06 p, mapuche.dh33 s,mapuche.dh83 t WHERE p.nro_legaj = dh01.nro_legaj AND p.codc_titul = s.codc_titul
2021/07/28 18:56:21 - ft_lt_legajos.0 - AND t.codc_nivel = s.codc_nivel ORDER BY t.nro_jerar DESC LIMIT 1) AS titulo,
2021/07/28 18:56:21 - ft_lt_legajos.0 - get_nivel_estudio_liq(dh01.nro_legaj,2021,6)::BYTEA as nivel_estudio_liq,
2021/07/28 18:56:21 - ft_lt_legajos.0 - CASE WHEN (SELECT 1 FROM mapuche.dhd9 WHERE dhd9.nro_legaj = dh01.nro_legaj GROUP BY dhd9.nro_legaj) = 1
2021/07/28 18:56:21 - ft_lt_legajos.0 - THEN 1 ELSE 0 END AS discapacidad_id,
2021/07/28 18:56:21 - ft_lt_legajos.0 - 0 AS cant_horas,
2021/07/28 18:56:21 - ft_lt_legajos.0 - CASE WHEN (SELECT 1 FROM mapuche.dh03 WHERE (fec_alta < (20210701::character varying)::date) AND (fec_baja is null or fec_baja >= (2021||‘-’||6||‘-’||01)::DATE) AND dh03.nro_legaj = dh01.nro_legaj GROUP BY dh03.nro_legaj) = 1
2021/07/28 18:56:21 - ft_lt_legajos.0 - THEN 1 ELSE 0 END AS cant_leg_activos,
2021/07/28 18:56:21 - ft_lt_legajos.0 - CASE WHEN (SELECT 1 FROM mapuche.dh21 WHERE dh21.nro_legaj = dh01.nro_legaj AND dh21.codn_conce > 0 AND dh21.nro_orimp >0 GROUP BY dh21.nro_legaj) = 1
2021/07/28 18:56:21 - ft_lt_legajos.0 - THEN 1 ELSE 0 END AS cant_leg_liq,
2021/07/28 18:56:21 - ft_lt_legajos.0 - COALESCE((SELECT tipo_incen FROM mapuche.dh03 WHERE
2021/07/28 18:56:21 - ft_lt_legajos.0 - (fec_alta < (20210701::character varying)::date) AND
2021/07/28 18:56:21 - ft_lt_legajos.0 - (fec_baja is null or fec_baja >= (2021||‘-’||6||‘-’||01)::DATE) AND
2021/07/28 18:56:21 - ft_lt_legajos.0 - tipo_incen NOT IN (‘’,‘N’) AND dh03.nro_legaj = dh01.nro_legaj AND tipo_incen IS NOT NULL
2021/07/28 18:56:21 - ft_lt_legajos.0 - ORDER BY tipo_incen LIMIT 1) , ’ ‘) AS categoria_incentivo_codigo,
2021/07/28 18:56:21 - ft_lt_legajos.0 - COALESCE((SELECT dedi_incen FROM mapuche.dh03 WHERE
2021/07/28 18:56:21 - ft_lt_legajos.0 - (fec_alta < (20210701::character varying)::date) AND
2021/07/28 18:56:21 - ft_lt_legajos.0 - (fec_baja is null or fec_baja >= (2021||’-‘||6||’-‘||01)::DATE) AND
2021/07/28 18:56:21 - ft_lt_legajos.0 - tipo_incen NOT IN (’',‘N’) AND dh03.nro_legaj = dh01.nro_legaj AND tipo_incen IS NOT NULL
2021/07/28 18:56:21 - ft_lt_legajos.0 - ORDER BY tipo_incen LIMIT 1) , ’ ') AS dedicacion_incentivo_codigo,
2021/07/28 18:56:21 - ft_lt_legajos.0 - LPAD(dh01.nro_cuil1::varchar, 2, ‘0’) || LPAD(dh01.nro_cuil::varchar, 8, ‘0’) || dh01.nro_cuil2 AS cuil,
2021/07/28 18:56:21 - ft_lt_legajos.0 - (SELECT correo_electronico::BYTEA FROM mapuche.dha1 WHERE dh01.nro_legaj=nro_persona AND domprincipal is TRUE ORDER BY ano_vigencia, mes_vigencia DESC LIMIT 1) as correo_electronico,
2021/07/28 18:56:21 - ft_lt_legajos.0 - (SELECT dh09.codc_regio FROM mapuche.dh09 WHERE dh09.nro_legaj = dh01.nro_legaj) AS regional_cabecera,
2021/07/28 18:56:21 - ft_lt_legajos.0 - (SELECT dh09.codc_uacad FROM mapuche.dh09 WHERE dh09.nro_legaj = dh01.nro_legaj) AS unidad_academica_cabecera
2021/07/28 18:56:21 - ft_lt_legajos.0 - FROM mapuche.dh01 dh01
2021/07/28 18:56:21 - ft_lt_legajos.0 - WHERE (dh01.tipo_estad = ‘A’ OR dh01.tipo_estad = ‘J’ OR (dh01.tipo_estad = ‘P’ AND dh01.nro_legaj in (Select distinct nro_legaj from mapuche.dh21)))
2021/07/28 18:56:21 - ft_lt_legajos.0 - ORDER BY dh01.nro_legaj
2021/07/28 18:56:21 - ft_lt_legajos.0 - ERROR: invalid input syntax for type bytea

Agradecemos vuestra ayuda.

Saludos

     Pablo

Hola Pablo! el problema lo podemos tener en una de las dos siguientes consultas:
1)
SELECT distinct correo_electronico::BYTEA FROM mapuche.dha1 WHERE domprincipal is TRUE

SELECT trim(dh01.desc_appat)::BYTEA AS apellido,
trim(dh01.desc_nombr)::BYTEA AS nombre
FROM mapuche.dh01 dh01

Podrás ejecutarlas por separado y ver en cual falla?
Lo mas probable es que sea algún caracter raro en una de esas dos tablas.

Saludos,
Sabrina

Hola Sabrina

Falla en la primera. Adjunto una imagen de lo que nos devolvió.

Saludos


Query_error.jpg

Query_error.png

Bue día Pablo! es posible que revisen si existe algún caracter raro en el campo correo_electronico de la tabla dha1 pueden reducir las filas con la condición domprincipal is TRUE.

Gracias.

Encontramos que algunos registros tenían "", los editamos y superamos este error.

Buenisimo!!!
Saludos