Estimados,
estoy realizando pruebas con la versión 3.17.1 desde cero. Luego de pasar los datos de informix a postgres me surge el siguiente error al correr el trabajo “Precontroles”.
2020/02/14 18:28:02 - fx_ctrl_generales - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : Ocurrió un error al ejecutar esta entrada de trabajo:
2020/02/14 18:28:02 - fx_ctrl_generales - Couldn’t execute SQL: CREATE OR REPLACE FUNCTION mig.sp_ctrl_generales() RETURNS SETOF mig.control_type AS $$
2020/02/14 18:28:02 - fx_ctrl_generales - DECLARE
2020/02/14 18:28:02 - fx_ctrl_generales - sql text;
2020/02/14 18:28:02 - fx_ctrl_generales - r mig.control_type;
2020/02/14 18:28:02 - fx_ctrl_generales - BEGIN
2020/02/14 18:28:02 - fx_ctrl_generales - SET search_path = ${pg_esquema};
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales - IF EXISTS (SELECT i.nombre, count() FROM mig.sga_instituciones as i GROUP BY 1
2020/02/14 18:28:02 - fx_ctrl_generales - HAVING COUNT() > 1 AND EXISTS (SELECT 1 FROM sga_instituciones as ig3 WHERE ig3.nombre = i.nombre)) THEN
2020/02/14 18:28:02 - fx_ctrl_generales - sql=E’SELECT i.nombre, count() FROM mig.sga_instituciones as i GROUP BY 1
2020/02/14 18:28:02 - fx_ctrl_generales - HAVING COUNT() > 1 AND EXISTS (SELECT 1 FROM sga_instituciones as ig3 WHERE ig3.nombre = i.nombre)‘;
2020/02/14 18:28:02 - fx_ctrl_generales - r := (false,‘Error: Hay dos o mas instituciones con el mismo nombre (mig.sga_instituciones) y que ya existe en Guarani 3. Reemplace el nombre de la instituci�n para que sea �nico’,sql)::mig.control_type;
2020/02/14 18:28:02 - fx_ctrl_generales - RETURN NEXT r;
2020/02/14 18:28:02 - fx_ctrl_generales - END IF;
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales - IF EXISTS (SELECT pais FROM mig.mug_paises WHERE pais > 32767) THEN
2020/02/14 18:28:02 - fx_ctrl_generales - sql=E’SELECT pais, nombre FROM mig.mug_paises WHERE pais > 32767’;
2020/02/14 18:28:02 - fx_ctrl_generales - r := (false,‘Error: Hay paises con id mayor a 32767 (maximo valor del smallint). Reemplace este valor por uno menor’,sql)::mig.control_type;
2020/02/14 18:28:02 - fx_ctrl_generales - RETURN NEXT r;
2020/02/14 18:28:02 - fx_ctrl_generales - END IF;
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales - IF EXISTS (SELECT localidad, codigo_postal FROM mig.mug_cod_postales WHERE localidad NOT IN (SELECT localidad FROM mig.mug_localidades UNION SELECT localidad FROM mug_localidades)) THEN
2020/02/14 18:28:02 - fx_ctrl_generales - sql=E’SELECT localidad, codigo_postal FROM mig.mug_cod_postales WHERE localidad NOT IN (SELECT localidad FROM mig.mug_localidades UNION SELECT localidad FROM mug_localidades)‘;
2020/02/14 18:28:02 - fx_ctrl_generales - r := (false,‘Advertencia: Hay c�digos postales de localidades que no existen en G3 (mug_localidades) ni en G2 (mig.mug_localidades). Estos c�digos postales no se van a migrar.’,sql)::mig.control_type;
2020/02/14 18:28:02 - fx_ctrl_generales - RETURN NEXT r;
2020/02/14 18:28:02 - fx_ctrl_generales - END IF;
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales - IF EXISTS (SELECT * FROM mig.sga_coleg_sec WHERE localidad IS NULL) THEN
2020/02/14 18:28:02 - fx_ctrl_generales - sql=E’SELECT * FROM mig.sga_coleg_sec WHERE localidad IS NULL’;
2020/02/14 18:28:02 - fx_ctrl_generales - r := (false,‘Advertencia: Hay colegios secundarios (mig.sga_coleg_sec) que no tienen definida una localidad’,sql)::mig.control_type;
2020/02/14 18:28:02 - fx_ctrl_generales - RETURN NEXT r;
2020/02/14 18:28:02 - fx_ctrl_generales - END IF;
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales - IF EXISTS (SELECT * FROM mig.sga_edificios WHERE localidad IS NULL) THEN
2020/02/14 18:28:02 - fx_ctrl_generales - sql=E’SELECT * FROM mig.sga_edificios WHERE localidad IS NULL’;
2020/02/14 18:28:02 - fx_ctrl_generales - r := (false,‘Advertencia: Hay edificiones (mig.sga_edificios) que no tienen localidad asignada’,sql)::mig.control_type;
2020/02/14 18:28:02 - fx_ctrl_generales - RETURN NEXT r;
2020/02/14 18:28:02 - fx_ctrl_generales - END IF;
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales - IF EXISTS (SELECT * FROM mig.sga_sedes WHERE localidad IS NULL) THEN
2020/02/14 18:28:02 - fx_ctrl_generales - sql=E’SELECT * FROM mig.sga_sedes WHERE localidad IS NULL’;
2020/02/14 18:28:02 - fx_ctrl_generales - r := (false,‘Advertencia: Hay sedes (mig.sga_sedes) que no tienen definida la localidad’,sql)::mig.control_type;
2020/02/14 18:28:02 - fx_ctrl_generales - RETURN NEXT r;
2020/02/14 18:28:02 - fx_ctrl_generales - END IF;
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales - IF EXISTS (SELECT * FROM mig.mug_localidades WHERE nombre_abreviado is null) THEN
2020/02/14 18:28:02 - fx_ctrl_generales - sql=E’SELECT * FROM mig.mug_localidades WHERE nombre_abreviado is null’;
2020/02/14 18:28:02 - fx_ctrl_generales - r := (false,‘Advertencia: Hay localidades (mig.mug_localidades) con nombre abreviado en null. Se asignar� el nombre de la localidad en este campo’,sql)::mig.control_type;
2020/02/14 18:28:02 - fx_ctrl_generales - RETURN NEXT r;
2020/02/14 18:28:02 - fx_ctrl_generales - END IF;
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales - IF EXISTS (SELECT escala_notas, nota, descripcion, resultado FROM mig.sga_det_escala WHERE descripcion IS NULL OR resultado IS NULL) THEN
2020/02/14 18:28:02 - fx_ctrl_generales - sql=E’SELECT escala_notas, nota, descripcion, resultado FROM mig.sga_det_escala WHERE descripcion IS NULL OR resultado IS NULL’;
2020/02/14 18:28:02 - fx_ctrl_generales - r := (false,‘Error: Hay registros de notas en escalas de notas (mig.sga_det_escala) con en el dato descripci�n o resultado con valor NULL,verificar…’,sql)::mig.control_type;
2020/02/14 18:28:02 - fx_ctrl_generales - RETURN NEXT r;
2020/02/14 18:28:02 - fx_ctrl_generales - END IF;
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales - IF EXISTS (SELECT escala_notas, descripcion FROM mig.sga_det_escala WHERE concepto IS NULL) THEN
2020/02/14 18:28:02 - fx_ctrl_generales - sql=E’SELECT escala_notas, descripcion FROM mig.sga_det_escala WHERE descripcion IS NULL OR resultado IS NULL’;
2020/02/14 18:28:02 - fx_ctrl_generales - r := (false,‘Advertencia: Hay registros con en el campo descripci�n o resultado de la tabla mig.sga_det_escala con valores NULL,verificar…’,sql)::mig.control_type;
2020/02/14 18:28:02 - fx_ctrl_generales - RETURN NEXT r;
2020/02/14 18:28:02 - fx_ctrl_generales - END IF;
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales - IF EXISTS (SELECT * FROM mig.sga_det_escala WHERE concepto IS NULL) THEN
2020/02/14 18:28:02 - fx_ctrl_generales - sql=E’SELECT * FROM mig.sga_det_escala WHERE concepto IS NULL’;
2020/02/14 18:28:02 - fx_ctrl_generales - r := (false,‘Error: Hay registros con en el campo concepto de la tabla mig.sga_det_escala con valores null,verificar…’,sql)::mig.control_type;
2020/02/14 18:28:02 - fx_ctrl_generales - RETURN NEXT r;
2020/02/14 18:28:02 - fx_ctrl_generales - END IF;
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales - IF EXISTS (SELECT a.libro, f.folio_fisico, count()
2020/02/14 18:28:02 - fx_ctrl_generales - FROM mig.sga_actas_promo as a, mig.sga_folios_promo as f
2020/02/14 18:28:02 - fx_ctrl_generales - WHERE a.unidad_academica = f.unidad_academica
2020/02/14 18:28:02 - fx_ctrl_generales - AND a.acta = f.acta
2020/02/14 18:28:02 - fx_ctrl_generales - AND a.libro IS NOT NULL
2020/02/14 18:28:02 - fx_ctrl_generales - AND f.folio_fisico IS NOT NULL
2020/02/14 18:28:02 - fx_ctrl_generales - GROUP BY 1, 2
2020/02/14 18:28:02 - fx_ctrl_generales - HAVING COUNT() > 1
2020/02/14 18:28:02 - fx_ctrl_generales - ) THEN
2020/02/14 18:28:02 - fx_ctrl_generales - sql=E’SELECT a.libro, f.folio_fisico, count() FROM mig.sga_actas_promo as a, mig.sga_folios_promo as f WHERE a.unidad_academica = f.unidad_academica AND a.acta = f.acta AND a.libro IS NOT NULL AND f.folio_fisico IS NOT NULL GROUP BY 1, 2 HAVING COUNT() > 1’;
2020/02/14 18:28:02 - fx_ctrl_generales - r := (false,‘Error: Hay registros de actas con folios fisicos duplicados del mismo libro en actas de promoci�n, tabla mig.sga_folios_promo, verificar…’,sql)::mig.control_type;
2020/02/14 18:28:02 - fx_ctrl_generales - RETURN NEXT r;
2020/02/14 18:28:02 - fx_ctrl_generales - END IF;
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales - IF EXISTS (SELECT a.libro, f.folio_fisico, count()
2020/02/14 18:28:02 - fx_ctrl_generales - FROM mig.sga_actas_examen as a, mig.sga_folios as f
2020/02/14 18:28:02 - fx_ctrl_generales - WHERE a.unidad_academica = f.unidad_academica
2020/02/14 18:28:02 - fx_ctrl_generales - AND a.tipo_acta = f.tipo_acta
2020/02/14 18:28:02 - fx_ctrl_generales - AND a.acta = f.acta
2020/02/14 18:28:02 - fx_ctrl_generales - AND a.libro IS NOT NULL
2020/02/14 18:28:02 - fx_ctrl_generales - AND f.folio_fisico IS NOT NULL
2020/02/14 18:28:02 - fx_ctrl_generales - GROUP BY 1, 2
2020/02/14 18:28:02 - fx_ctrl_generales - HAVING COUNT() > 1
2020/02/14 18:28:02 - fx_ctrl_generales - ) THEN
2020/02/14 18:28:02 - fx_ctrl_generales - sql=E’SELECT a.libro, f.folio_fisico, count() FROM mig.sga_actas_examen as a, mig.sga_folios as f WHERE a.unidad_academica = f.unidad_academica AND a.tipo_acta = f.tipo_acta AND a.acta = f.acta AND a.libro IS NOT NULL AND f.folio_fisico IS NOT NULL GROUP BY 1, 2 HAVING COUNT() > 1’;
2020/02/14 18:28:02 - fx_ctrl_generales - r := (false,‘Error: Hay registros de actas con folios fisicos duplicados del mismo libro en actas de examen, tabla mig.sga_folios, verificar…’,sql)::mig.control_type;
2020/02/14 18:28:02 - fx_ctrl_generales - RETURN NEXT r;
2020/02/14 18:28:02 - fx_ctrl_generales - END IF;
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales - IF EXISTS (SELECT * FROM mig.sga_atrib_mat_plan WHERE periodo_dictado IS NOT NULL AND periodo_dictado NOT IN ( SELECT periodo_lectivo FROM mig.sga_per_lect_gen)) THEN
2020/02/14 18:28:02 - fx_ctrl_generales - sql=E’SELECT * FROM mig.sga_atrib_mat_plan WHERE periodo_dictado IS NOT NULL AND periodo_dictado NOT IN ( SELECT periodo_lectivo FROM mig.sga_per_lect_gen)';
2020/02/14 18:28:02 - fx_ctrl_generales - r := (false,‘Error: Hay registros en el campo periodo_dictado de la tabla mig.sga_atrib_mat_plan que no se encuentran en la tabla mig.sga_per_lect_gen,verificar…’,sql)::mig.control_type;
2020/02/14 18:28:02 - fx_ctrl_generales - RETURN NEXT r;
2020/02/14 18:28:02 - fx_ctrl_generales - END IF;
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales - RETURN;
2020/02/14 18:28:02 - fx_ctrl_generales - END;
2020/02/14 18:28:02 - fx_ctrl_generales - $$ LANGUAGE plpgsql;
2020/02/14 18:28:02 - fx_ctrl_generales -
2020/02/14 18:28:02 - fx_ctrl_generales - ERROR: error de sintaxis en o cerca de «$»
2020/02/14 18:28:02 - fx_ctrl_generales - Position: 156
¿Alguna sugerencia?
Saludos cordiales