Error: en precontroles_Personas

Hola, el único error que me quedo en precontroles es este:

Error: Hay personas que tienen el mismo NUMERO DE CUIL (mig.sga_personas.numero_cuil) que en Guarani 3 (mdp_personas_documentos.nro_documento donde tipo_documento = 3).

Al ejecutar la siguiente consulta

SELECT numero_cuil FROM mig.sga_personas WHERE numero_cuil IS NOT NULL AND numero_cuil in (SELECT nro_documento FROM mdp_personas_documentos WHERE tipo_documento = 3)

dice que no existe la relación mdp_personas_documentos , no se si sera correcto pero le agregue el esquema negocio y ahí si funciona la consulta dándome una serie de cuils, que me han dicho que tengo que borrar de la tabla negocio.mdp_personas_documentos cosa que no puedo hacer porque al tratar de borrarlos con
delete FROM negocio.mdp_personas_documentos WHERE tipo_documento = 3; (El tipo documento 3 no existe)
sale el siguiente error

ERROR: no existe la relación «mdp_personas»
LINE 1: SELECT COUNT() FROM mdp_personas
^
QUERY: SELECT COUNT(
) FROM mdp_personas
WHERE persona = OLD.persona
AND documento_principal = OLD.documento
CONTEXT: función PL/pgSQL negocio.ftdb_mdp_personas_documentos() en la línea 9 en sentencia SQL

********** Error **********

ERROR: no existe la relación «mdp_personas»
SQL state: 42P01
Context: función PL/pgSQL negocio.ftdb_mdp_personas_documentos() en la línea 9 en sentencia SQL

ahora bien, mas alla de este error, como esto es una practica para luego hacerlo en la base de datos de produccion, seguí adelante con la migracion, y al llegar a la migracion de datos censales 02_Modulos/20_Datos Censales/02_Migracion/mig_Datos_Censales.kjb

da el siguiente error:
2017/06/06 02:55:47 - 04_mdp_datos_actividades - ERROR (version 5.3.0.0-213, build 1 from 2015-02-02_12-17-08 by buildguy) : Ocurrió un error al ejecutar esta entrada de trabajo:
2017/06/06 02:55:47 - 04_mdp_datos_actividades - Couldn’t execute SQL: SELECT * FROM mig.get_script_corrido(4,‘DATOS CENSALES’) ;
.
.
.
2017/06/06 02:55:47 - 04_mdp_datos_actividades - INSERT INTO mig._app_migracion ( modulo, fecha_generacion, fecha_actualiz, script_corrido )
2017/06/06 02:55:47 - 04_mdp_datos_actividades - VALUES (‘DATOS CENSALES’ , CURRENT_DATE, CURRENT_TIMESTAMP,4 );
2017/06/06 02:55:47 - 04_mdp_datos_actividades -
2017/06/06 02:55:47 - 04_mdp_datos_actividades - ERROR: la sintaxis de entrada no es válida para el tipo numeric: « »

y este error no se como solucionarlo

Bueno desde ya muchisimas gracias

Saludos
Hugo

Respecto a esto:

Al ejecutar la siguiente consulta 

SELECT numero_cuil FROM mig.sga_personas WHERE numero_cuil IS NOT NULL AND numero_cuil in (SELECT nro_documento FROM mdp_personas_documentos WHERE tipo_documento = 3) 

Si estas tomando esa consulta y ejecutandola desde el PgAdmin u otro editor de sql de la base, debes definir el esquema antes y ejecutar todo junto:


SET SEARCH_PATH = negocio;
SELECT numero_cuil FROM mig.sga_personas 
WHERE numero_cuil IS NOT NULL AND numero_cuil in (SELECT nro_documento FROM mdp_personas_documentos WHERE tipo_documento = 3) ;

Si usas el Pgadmin, en Properties de la base de datos, podes ir a la solapa “Variables” y alli setear la variable “search_path” con el nombre del esquema de negocio de G3, que en este caso debes tenerlo con el nombre “negocio”.

Respecto al 2do error en la migracion de datos censales. ¿Podes ver de abrir ese archivo en el PgAdmin y ejecutar cada sentencia manualmente?
Recorda de setear el search_path.
Para ver si el error esta en el insert que se hace en la tabla “mdp_datos_actividades”

Hola, gracias por la respuesta tan rapida, el primer tema ya esta solucionado asi como me han guiado ustedes.

En cuanto al segundo error, ejecute solo el select, sin intentar hacer el insert y da el mismo error, probe tambien ejecutar el select sin la clausula where y tambien da ese error. Por ahora estoy viendo si todas las columnas tienen el tipo de datos que corresponde.
desde ya muchas gracias

Saludos

¿Esta es la query que da error?

Fijate en cual de los campos que intenta convertir a numerico es el que da error:

SELECT
to_number(msdca2.alu_tec_int_regul,‘9’),
to_number(msdca2.alu_idioma_ingl,‘9’),
to_number(msdca2.alu_idioma_alem,‘9’),
to_number(msdca2.alu_idioma_fran,‘9’),
to_number(msdca2.alu_idioma_ital,‘9’),
to_number(msdca2.alu_idioma_port,‘9’)

FROM   
        mdp_datos_censales mdc,
        mig._cnv_pk_personas as mcp,
        mig.sga_datos_cen_aux msdca,
        mig.sga_datos_cen_aux2 msdca2,
        mig._cnv_pk_datos_censales msdc
       
WHERE   
        mcp.persona = mdc.persona AND
        mcp.migrar_datos_censales = 1 AND 
       
        mdc.dato_censal = msdc.dato_censal AND

        msdc.unidad_academica = msdca.unidad_academica AND
        msdc.nro_inscripcion = msdca.nro_inscripcion AND
        msdc.fecha_relevamiento = msdca.fecha_relevamiento AND

        msdca.unidad_academica = msdca2.unidad_academica AND
        msdca.nro_inscripcion = msdca2.nro_inscripcion AND
        msdca.fecha_relevamiento = msdca2.fecha_relevamiento AND

        msdca2.unidad_academica = msdc.unidad_academica AND
        msdca2.nro_inscripcion = msdc.nro_inscripcion AND
        msdca2.fecha_relevamiento = msdc.fecha_relevamiento;

Hola, me fije y da ese error con estos campos (los ultimos 4)
to_number(msdca2.alu_idioma_alem,‘9’),
to_number(msdca2.alu_idioma_fran,‘9’),
to_number(msdca2.alu_idioma_ital,‘9’),
to_number(msdca2.alu_idioma_port,‘9’)

Gracias

Deben haber modificado la edicion de esos campos, ya que permiten los siguientes valores numericos:
1 = Muy Bueno
2 = Bueno
3 = Básico
4 = Desconoce
o NULL

Fijense si tienen datos diferentes. Veremos de agregar un pre-control por esto asi pueden corregir los datos.

select alu_idioma_ingl,nro_inscripcion from mig.sga_datos_cen_aux2 where ALU_IDIOMA_INGL IS NOT NULL AND  ALU_IDIOMA_INGL NOT IN ('1','2','3','4');
select alu_idioma_fran,nro_inscripcion from mig.sga_datos_cen_aux2 where ALU_IDIOMA_FRAN IS NOT NULL AND  ALU_IDIOMA_FRAN NOT IN ('1','2','3','4');
select alu_idioma_port,nro_inscripcion from mig.sga_datos_cen_aux2 where ALU_IDIOMA_PORT IS NOT NULL AND  ALU_IDIOMA_PORT NOT IN ('1','2','3','4');
select alu_idioma_ital,nro_inscripcion from mig.sga_datos_cen_aux2 where ALU_IDIOMA_ITAL IS NOT NULL AND  ALU_IDIOMA_ITAL NOT IN ('1','2','3','4');
select alu_idioma_alem,nro_inscripcion from mig.sga_datos_cen_aux2 where ALU_IDIOMA_ALEM IS NOT NULL AND  ALU_IDIOMA_ALEM NOT IN ('1','2','3','4');

Los datos de esos campos estan en la tabla mdp_nivel_idioma. Vean si es que tienen algun otro dato en esos campos o es que agregaron nuevos valores, de ser asi deberian agregar el nuevo valor (que sea un dato numerico > 100). Si es un dato no numerico debieran cambiarlo por algun dato numerico (100, 101, 102…) y agregar el nuevo valor en esta tabla de G3, asi al migrar no tendran problemas.
Este cambio lo pueden hacer sobre el esquema de migracion, en la tabla mig.sga_datos_cen_aux2

select * from mdp_nivel_idioma;

Solucionado, el error era que, en esos campos en lugar de null tenia un espacio en blanco.

Muchisimas Gracias