Error al migrar desde CSV. Incongruencia entre error de pentaho y ejec en db

Estimados,

Cuando ejecuto en pentaho mig_personas, obtengo el siguiente error:

INSERT INTO ext.mig_personas (apellido, nombres, usuario, clave, sexo, fecha_nacimiento, localidad_nacimiento, localidad_nacim_nombre, partido_nacim_nombre, provincia_nacim_nombre, nacionalidad, fecha_ingreso_pais, pais_origen, pais_documento, tipo_documento, nro_documento, cuit_cuil, nivel_estudio, institucion, institucion_otra, colegio, colegio_otro, anio_ingreso, anio_egreso, fecha_ingreso, fecha_egreso, titulo, titulo_otro, estado, apellido_p, nombres_p, apellido_m, nombres_m, email, celular_compania, telefono_codigo_area_cel, telefono_numero_cel, telefono_codigo_area_fijo, telefono_numero_fijo, localidad, localidad_nombre, partido_nombre, provincia_nombre, codigo_postal, barrio, calle, numero, piso, departamento, unidad, estado_civil, cantidad_hijos, cobertura_salud, observaciones_salud, trabajo_existe, trabajo_hora_sem, trabajo_tarea_descripcion, proc_localidad_nombre, proc_partido_nombre, proc_provincia_nombre, proc_codigo_postal, proc_barrio, proc_calle, proc_numero, proc_piso, proc_departamento, proc_unidad, turno_preferido_cursada) VALUES ( ‘GUBANOVA’, ‘Daria’, 19019484, NULL, ‘F’, ‘1990-04-02 00:00:00-03’, NULL, NULL, NULL, ‘Poltavs ka Oblast’, 1, NULL, 380, 54, 0, 19019484, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, ‘dashagubanova@gmail.com’, NULL, NULL, NULL, NULL, NULL, 1, ‘Ciudad Autónoma de Buenos Aires’, ‘Ciudad Autónoma de Buenos Aires’, ‘Ciudad Autónoma de Buenos Aires’, ‘1407’, NULL, ‘Manzoni’, 141, ‘8’, ‘H’, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, ‘Ciudad Autónoma de Buenos Aires’, ‘Ciudad Autónoma de Buenos Aires’, ‘Ciudad Autónoma de Buenos Aires’, ‘1407’, NULL, ‘Manzoni’, ‘141’, ‘8’, ‘H’, NULL, NULL) was aborted: ERROR: column “localidad_nacimiento” is of type integer but expression is of type character

Verifico la línea del CSV y parece estar bien:

GUBANOVA|Daria|19019484||F|02/04/1990||||Poltavs ka Oblast|1||380|54|0|19019484||||||||||||||||||dashagubanova@gmail.com||||||1|Ciudad Autónoma de Buenos Aires|Ciudad Autónoma de Buenos Aires|Ciudad Autónoma de Buenos Aires|1407||Manzoni|141|8|H|||||||||Ciudad Autónoma de Buenos Aires|Ciudad Autónoma de Buenos Aires|Ciudad Autónoma de Buenos Aires|1407||Manzoni|141|8|H|

Si copio el SQL en el pgadmin y se ejecuta funciona correctamente.

Hola Daniel, con que version de los scripts estas realizando la migración?

Estoy trabajando con la versión 3.18.1.

Eliminé el schema ext y empecé de nuevo.

El error es el siguiente

2022/06/14 10:00:06 - Spoon - Iniciando trabajo…
2022/06/14 10:00:06 - prectrl_personas - Ejecución del trabajo comenzada
2022/06/14 10:00:06 - prectrl_personas - Entrada de comienzo [Crea tipo de datos]
2022/06/14 10:00:07 - prectrl_personas - Entrada de comienzo [fx_prectrl_personas]
2022/06/14 10:00:07 - fx_prectrl_personas - ERROR (version 8.3.0.0-371, build 8.3.0.0-371 from 2019-06-11 11.09.08 by buildguy) : Ocurrió un error al ejecutar esta entrada de trabajo:
2022/06/14 10:00:07 - fx_prectrl_personas - Couldn’t execute SQL: CREATE OR REPLACE FUNCTION ext.sp_ctrl_personas() RETURNS SETOF ext.control_type AS $$
2022/06/14 10:00:07 - fx_prectrl_personas - DECLARE
2022/06/14 10:00:07 - fx_prectrl_personas - sql text;
2022/06/14 10:00:07 - fx_prectrl_personas - r ext.control_type;
2022/06/14 10:00:07 - fx_prectrl_personas - v_ok text;
2022/06/14 10:00:07 - fx_prectrl_personas - cursor1 RECORD;
2022/06/14 10:00:07 - fx_prectrl_personas - BEGIN
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - SET search_path = ${pg_esquema};
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - IF EXISTS (SELECT apellido,nombres,tipo_documento,nro_documento,count() FROM ext.mig_personas GROUP BY apellido,nombres,tipo_documento,nro_documento HAVING count()>1) THEN
2022/06/14 10:00:07 - fx_prectrl_personas - sql=‘SELECT apellido,nombres,tipo_documento,nro_documento,count() FROM ext.mig_personas GROUP BY apellido,nombres,tipo_documento,nro_documento HAVING count()>1’;
2022/06/14 10:00:07 - fx_prectrl_personas - r := (false,‘Error: Hay registros duplicados para el un mismo tipo_documento y nro_documento, verifique!!’,sql)::ext.control_type;
2022/06/14 10:00:07 - fx_prectrl_personas - RETURN NEXT r;
2022/06/14 10:00:07 - fx_prectrl_personas - END IF;
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - IF EXISTS (SELECT tipo_documento,nro_documento,count() FROM ext.mig_personas GROUP BY tipo_documento,nro_documento HAVING count()>1) THEN
2022/06/14 10:00:07 - fx_prectrl_personas - sql=‘SELECT tipo_documento,nro_documento,count() FROM ext.mig_personas GROUP BY tipo_documento,nro_documento HAVING count()>1’;
2022/06/14 10:00:07 - fx_prectrl_personas - r := (false,‘Error: Hay registros duplicados para el un mismo tipo_documento y nro_documento, verifique!!’,sql)::ext.control_type;
2022/06/14 10:00:07 - fx_prectrl_personas - RETURN NEXT r;
2022/06/14 10:00:07 - fx_prectrl_personas - END IF;
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - IF EXISTS (SELECT * FROM ext.mig_personas WHERE sexo NOT IN (SELECT sexo FROM mdp_personas_sexo)) THEN
2022/06/14 10:00:07 - fx_prectrl_personas - sql=‘SELECT * FROM ext.mig_personas WHERE sexo NOT IN (SELECT sexo FROM mdp_personas_sexo)’;
2022/06/14 10:00:07 - fx_prectrl_personas - r := (false,‘Error: Hay registros en el campo sexo distintos a valores (F y M) verifique!!’,sql)::ext.control_type;
2022/06/14 10:00:07 - fx_prectrl_personas - RETURN NEXT r;
2022/06/14 10:00:07 - fx_prectrl_personas - END IF;
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - IF EXISTS (SELECT * FROM ext.mig_personas WHERE institucion IS NOT NULL AND institucion NOT IN (SELECT institucion FROM sga_instituciones)) THEN
2022/06/14 10:00:07 - fx_prectrl_personas - sql=‘SELECT * FROM ext.mig_personas WHERE institucion IS NOT NULL AND institucion NOT IN (SELECT institucion FROM sga_instituciones)’;
2022/06/14 10:00:07 - fx_prectrl_personas - r := (false,‘Error: Hay registros en el campo INSTITUCION que no estan en la tabla sga_instituciones, verifique!!’,sql)::ext.control_type;
2022/06/14 10:00:07 - fx_prectrl_personas - RETURN NEXT r;
2022/06/14 10:00:07 - fx_prectrl_personas - END IF;
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - IF EXISTS (SELECT * FROM ext.mig_personas WHERE localidad_nacimiento IS NOT NULL AND localidad_nacimiento NOT IN (SELECT localidad FROM mug_localidades)) THEN
2022/06/14 10:00:07 - fx_prectrl_personas - sql=‘SELECT * FROM ext.mig_personas WHERE localidad_nacimiento IS NOT NULL AND localidad_nacimiento NOT IN (SELECT localidad FROM mug_localidades)’;
2022/06/14 10:00:07 - fx_prectrl_personas - r := (false,‘Error: Hay registros en el campo LOCALIDAD_NACIMIENTO que no estan en la tabla mug_localidades, verifique!!’,sql)::ext.control_type;
2022/06/14 10:00:07 - fx_prectrl_personas - RETURN NEXT r;
2022/06/14 10:00:07 - fx_prectrl_personas - END IF;
2022/06/14 10:00:07 - fx_prectrl_personas - IF EXISTS (SELECT * FROM ext.mig_personas WHERE localidad IS NOT NULL AND localidad NOT IN (SELECT localidad FROM mug_localidades)) THEN
2022/06/14 10:00:07 - fx_prectrl_personas - sql=‘SELECT * FROM ext.mig_personas WHERE localidad IS NOT NULL AND localidad NOT IN (SELECT localidad FROM mug_localidades)’;
2022/06/14 10:00:07 - fx_prectrl_personas - r := (false,‘Error: Hay registros en el campo LOCALIDAD que no estan en la tabla mug_localidades, verifique!!’,sql)::ext.control_type;
2022/06/14 10:00:07 - fx_prectrl_personas - RETURN NEXT r;
2022/06/14 10:00:07 - fx_prectrl_personas - END IF;
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - IF EXISTS (SELECT * FROM ext.mig_personas WHERE nacionalidad NOT IN (SELECT nacionalidad FROM mdp_nacionalidades)) THEN
2022/06/14 10:00:07 - fx_prectrl_personas - sql=‘SELECT * FROM ext.mig_personas WHERE nacionalidad NOT IN (SELECT nacionalidad FROM mdp_nacionalidades)’;
2022/06/14 10:00:07 - fx_prectrl_personas - r := (false,‘Error: Hay registros en el campo nacionalidad que no estan en la tabla mug_nacionalidades, verifique!!’,sql)::ext.control_type;
2022/06/14 10:00:07 - fx_prectrl_personas - RETURN NEXT r;
2022/06/14 10:00:07 - fx_prectrl_personas - END IF;
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - IF EXISTS (SELECT * FROM ext.mig_personas WHERE pais_origen NOT IN (SELECT pais FROM mug_paises)) THEN
2022/06/14 10:00:07 - fx_prectrl_personas - sql=‘SELECT * FROM ext.mig_personas WHERE pais_origen NOT IN (SELECT pais FROM mug_paises)’;
2022/06/14 10:00:07 - fx_prectrl_personas - r := (false,‘Error: Hay registros en el campo pais_origen que no estan en la tabla mug_paises, verifique!!’,sql)::ext.control_type;
2022/06/14 10:00:07 - fx_prectrl_personas - RETURN NEXT r;
2022/06/14 10:00:07 - fx_prectrl_personas - END IF;
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - IF EXISTS (SELECT * FROM ext.mig_personas WHERE pais_documento NOT IN (SELECT pais FROM mug_paises)) THEN
2022/06/14 10:00:07 - fx_prectrl_personas - sql=‘SELECT * FROM ext.mig_personas WHERE pais_documento NOT IN (SELECT pais FROM mug_paises)’;
2022/06/14 10:00:07 - fx_prectrl_personas - r := (false,‘Error: Hay registros en el campo pais_documento que no estan en la tabla mug_paises, verifique!!’,sql)::ext.control_type;
2022/06/14 10:00:07 - fx_prectrl_personas - RETURN NEXT r;
2022/06/14 10:00:07 - fx_prectrl_personas - END IF;
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - IF EXISTS (SELECT * FROM ext.mig_personas WHERE tipo_documento NOT IN (SELECT tipo_documento FROM mdp_tipo_documento)) THEN
2022/06/14 10:00:07 - fx_prectrl_personas - sql=‘SELECT * FROM ext.mig_personas WHERE tipo_documento NOT IN (SELECT tipo_documento FROM mdp_tipo_documento)’;
2022/06/14 10:00:07 - fx_prectrl_personas - r := (false,‘Error: Hay registros en el campo tipo_documento que no estan en la tabla mdp_tipo_documento, verifique!!’,sql)::ext.control_type;
2022/06/14 10:00:07 - fx_prectrl_personas - RETURN NEXT r;
2022/06/14 10:00:07 - fx_prectrl_personas - END IF;
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - IF EXISTS (SELECT * FROM ext.mig_personas WHERE estado_civil NOT IN (SELECT estado_civil FROM mdp_estados_civiles)) THEN
2022/06/14 10:00:07 - fx_prectrl_personas - sql=‘SELECT * FROM ext.mig_personas WHERE estado_civil NOT IN (SELECT estado_civil FROM mdp_estados_civiles)’;
2022/06/14 10:00:07 - fx_prectrl_personas - r := (false,‘Error: Hay registros en el campo estado_civil que no estan en la tabla mdp_estados_civiles, verifique!!’,sql)::ext.control_type;
2022/06/14 10:00:07 - fx_prectrl_personas - RETURN NEXT r;
2022/06/14 10:00:07 - fx_prectrl_personas - END IF;
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - IF EXISTS (SELECT * FROM ext.mig_personas WHERE estado IS NOT NULL AND estado NOT IN (‘F’, ‘A’,‘C’) AND estado IS NOT NULL) THEN
2022/06/14 10:00:07 - fx_prectrl_personas - sql=E’SELECT * FROM ext.mig_personas WHERE estado IS NOT NULL AND estado NOT IN ('F','A','C') AND estado IS NOT NULL’;
2022/06/14 10:00:07 - fx_prectrl_personas - r := (false,‘Error: Hay registros en el campo ESTADO del titulo no validos. Valores: F-Finalizado C-En curso A-Abandono, verifique!!’,sql)::ext.control_type;
2022/06/14 10:00:07 - fx_prectrl_personas - RETURN NEXT r;
2022/06/14 10:00:07 - fx_prectrl_personas - END IF;
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - IF EXISTS (SELECT * FROM ext.mig_personas m WHERE EXISTS
2022/06/14 10:00:07 - fx_prectrl_personas - (SELECT ‘’ FROM mdp_personas_documentos p WHERE p.tipo_documento = m.tipo_documento AND p.nro_documento = m.nro_documento )) THEN
2022/06/14 10:00:07 - fx_prectrl_personas - sql=‘SELECT * FROM ext.mig_personas m WHERE EXISTS (SELECT * FROM mdp_personas_documentos p WHERE p.tipo_documento = m.tipo_documento
2022/06/14 10:00:07 - fx_prectrl_personas - AND p.nro_documento = m.nro_documento )’;
2022/06/14 10:00:07 - fx_prectrl_personas - r := (false,‘Error: Hay personas con tipo y nro_documento ya ingresados a Guarani (ver en mdp.personas), verifique!!’,sql)::ext.control_type;
2022/06/14 10:00:07 - fx_prectrl_personas - RETURN NEXT r;
2022/06/14 10:00:07 - fx_prectrl_personas - END IF;
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - IF EXISTS (SELECT * FROM ext.mig_personas WHERE usuario IS NOT NULL AND usuario IN (SELECT usuario FROM mdp_personas)) THEN
2022/06/14 10:00:07 - fx_prectrl_personas - sql=‘SELECT * FROM ext.mig_personas WHERE usuario IS NOT NULL AND usuario IN (SELECT usuario FROM mdp_personas)’;
2022/06/14 10:00:07 - fx_prectrl_personas - r := (false,‘Error: Hay datos de codigo de acceso al sistema (USUARIO) que ya existen en Guarani 3, verifique!!’,sql)::ext.control_type;
2022/06/14 10:00:07 - fx_prectrl_personas - RETURN NEXT r;
2022/06/14 10:00:07 - fx_prectrl_personas - END IF;
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - IF EXISTS (SELECT * FROM ext.mig_personas WHERE titulo IS NOT NULL AND titulo NOT IN (SELECT titulo FROM mdp_titulos)) THEN
2022/06/14 10:00:07 - fx_prectrl_personas - sql=‘SELECT * FROM ext.mig_personas WHERE titulo IS NOT NULL AND titulo NOT IN (SELECT titulo FROM mdp_titulos)’;
2022/06/14 10:00:07 - fx_prectrl_personas - r := (false,‘Error: Hay datos de titulo (TITULO) que no existen en mdp_titulos, verifique!!’,sql)::ext.control_type;
2022/06/14 10:00:07 - fx_prectrl_personas - RETURN NEXT r;
2022/06/14 10:00:07 - fx_prectrl_personas - END IF;
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - IF EXISTS (SELECT * FROM ext.mig_personas WHERE nivel_estudio IS NOT NULL AND nivel_estudio NOT IN (SELECT nivel_estudio FROM mdp_nivel_estudio)) THEN
2022/06/14 10:00:07 - fx_prectrl_personas - sql=‘SELECT * FROM ext.mig_personas WHERE nivel_estudio IS NOT NULL AND nivel_estudio NOT IN (SELECT nivel_estudio FROM mdp_nivel_estudio)’;
2022/06/14 10:00:07 - fx_prectrl_personas - r := (false,‘Error: Hay datos de nivel de estudio (NIVEL_ESTUDIO) que no existen en mdp_nivel_estudio, verifique!!’,sql)::ext.control_type;
2022/06/14 10:00:07 - fx_prectrl_personas - RETURN NEXT r;
2022/06/14 10:00:07 - fx_prectrl_personas - END IF;
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - IF EXISTS (SELECT * FROM ext.mig_personas WHERE cobertura_salud IS NOT NULL AND cobertura_salud NOT IN (SELECT cobertura_salud FROM mdp_cobertura_salud)) THEN
2022/06/14 10:00:07 - fx_prectrl_personas - sql=‘SELECT * FROM ext.mig_personas WHERE cobertura_salud IS NOT NULL AND cobertura_salud NOT IN (SELECT cobertura_salud FROM mdp_cobertura_salud)’;
2022/06/14 10:00:07 - fx_prectrl_personas - r := (false,‘Error: Hay datos de cobertura de salud (COBERTURA_SALUD) que no existen en mdp_cobertura_salud, verifique!!’,sql)::ext.control_type;
2022/06/14 10:00:07 - fx_prectrl_personas - RETURN NEXT r;
2022/06/14 10:00:07 - fx_prectrl_personas - END IF;
2022/06/14 10:00:07 - fx_prectrl_personas - IF EXISTS (SELECT * FROM ext.mig_personas WHERE trabajo_existe IS NOT NULL AND trabajo_existe NOT IN (SELECT trabajo_existe FROM mdp_trabajo_existe)) THEN
2022/06/14 10:00:07 - fx_prectrl_personas - sql=‘SELECT * FROM ext.mig_personas WHERE trabajo_existe IS NOT NULL AND trabajo_existe NOT IN (SELECT trabajo_existe FROM mdp_trabajo_existe)’;
2022/06/14 10:00:07 - fx_prectrl_personas - r := (false,‘Error: Hay datos de trabajo existe (TRABAJO_EXISTE) que no existen en mdp_trabajo_existe, verifique!!’,sql)::ext.control_type;
2022/06/14 10:00:07 - fx_prectrl_personas - RETURN NEXT r;
2022/06/14 10:00:07 - fx_prectrl_personas - END IF;
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - IF EXISTS (SELECT * FROM ext.mig_personas WHERE extract(year from fecha_nacimiento) >= (extract(year from current_date) - 15 )) THEN
2022/06/14 10:00:07 - fx_prectrl_personas - sql=‘SELECT * FROM ext.mig_personas WHERE extract(year from fecha_nacimiento) >= (extract(year from current_date) - 15 )’;
2022/06/14 10:00:07 - fx_prectrl_personas - r := (false,‘Error: Hay registros con fecha de nacimiento menores a 15 años, verifique!!’,sql)::ext.control_type;
2022/06/14 10:00:07 - fx_prectrl_personas - RETURN NEXT r;
2022/06/14 10:00:07 - fx_prectrl_personas - END IF;
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - IF EXISTS (SELECT * FROM ext.mig_personas WHERE colegio IS NOT NULL AND colegio NOT IN (SELECT colegio FROM sga_colegios_secundarios)) THEN
2022/06/14 10:00:07 - fx_prectrl_personas - sql=‘SELECT * FROM ext.mig_personas WHERE colegio IS NOT NULL AND colegio NOT IN (SELECT colegio FROM sga_colegios_secundarios)’;
2022/06/14 10:00:07 - fx_prectrl_personas - r := (false,‘Error: Hay colegios secundarios (COLEGIO) que no se encuentran en sga_colegios_secundarios, verifique!!’,sql)::ext.control_type;
2022/06/14 10:00:07 - fx_prectrl_personas - RETURN NEXT r;
2022/06/14 10:00:07 - fx_prectrl_personas - END IF;
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - IF EXISTS (SELECT * FROM ext.mig_personas WHERE trabajo_hora_sem IS NOT NULL AND trabajo_hora_sem NOT IN (SELECT trabajo_hora_sem FROM mdp_trabajo_horas_sem)) THEN
2022/06/14 10:00:07 - fx_prectrl_personas - sql=‘SELECT * FROM ext.mig_personas WHERE trabajo_hora_sem IS NOT NULL AND trabajo_hora_sem NOT IN (SELECT trabajo_hora_sem FROM mdp_trabajo_horas_sem)’;
2022/06/14 10:00:07 - fx_prectrl_personas - r := (false,‘Error: Hay HORAS TRABAJADAS EN LA SEMANA (trabajo_hora_sem) que no se encuentran en trabajo_hora_sem, verifique!!’,sql)::ext.control_type;
2022/06/14 10:00:07 - fx_prectrl_personas - RETURN NEXT r;
2022/06/14 10:00:07 - fx_prectrl_personas - END IF;
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - IF EXISTS (SELECT * FROM ext.mig_personas WHERE turno_preferido_cursada IS NOT NULL AND turno_preferido_cursada NOT IN (SELECT turno FROM sga_turnos_cursadas)) THEN
2022/06/14 10:00:07 - fx_prectrl_personas - sql=‘SELECT * FROM ext.mig_personas WHERE turno_preferido_cursada IS NOT NULL AND turno_preferido_cursada NOT IN (SELECT turno FROM sga_turnos_cursadas)’;
2022/06/14 10:00:07 - fx_prectrl_personas - r := (false,‘Error: Hay TURNOS PREFERIDOS DE CURSADAS (turno_preferido_cursada) que no se encuentran en la tabla de turnos (sga_turnos_cursadas), verifique!!’,sql)::ext.control_type;
2022/06/14 10:00:07 - fx_prectrl_personas - RETURN NEXT r;
2022/06/14 10:00:07 - fx_prectrl_personas - END IF;
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - RETURN;
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - END
2022/06/14 10:00:07 - fx_prectrl_personas - $$ LANGUAGE plpgsql;
2022/06/14 10:00:07 - fx_prectrl_personas -
2022/06/14 10:00:07 - fx_prectrl_personas - ERROR: syntax error at or near “$”
Position: 197

Hola
el error inicial no lo volvio a dar ?
Esta configurado la Variable de Entorno ${pg_esquema} ?
https://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.20.0/migracion/kettle/configuracion
avísanos
saludos

Sí. Está configurada con valor negocio.

Hola
Por el error en la posición 197 pensábamos que podría ser la variable pg_esquema
hay alguna modificación en el archivo fx_prectrl_personas?
podrían probar seteando reemplazando en el archivo fx_prectrl_personas por ‘negocio’ o el valor que tiene esa variable?

muchas gracias
saludos

Estimados, he hecho el cambio en el sql y funcionó. Muchas gracias