Problema de integridad entre la DH08 la DH30.

Nico:
Como te he adelantado por teléfono, poseo un problema al migrar de Pervasive a la base Postgres, la tabla “DH08” debido a la existencia de valores nulos en el campo “CODC_NACIO”.
Es correcto que la posibilidad de valores para este campo surgen de la relación con la tabla “DH30”; y en esta, con la dupla de campos “NRO_TABLA” y “DESC_ABREV”. Pero para nosotros, la existencia de ese tipo de valor en el campo “CODC_NACIO” de la “DH08” es de profeso. Lo fundamento más detalladamente: Sucede que para nosotros ese valor nulo se encuentra asociada a un tipo de nacionalidad por defecto que es “Ninguna, ha de verificarse”; y por estar en nulo el valor de “DESC_ABREV” el sistema lo levanta primero cuando se crea un nuevo registro en la “DH08”; osea está indicando que falta un dato. Bien, se podría decir que se emplee un código para que represente a ese faltante, pero sucede que el sistema asociará como valor por defecto de nacionalidad al código que en orden ascendente ocupe el primer lugar en orden alfabético. He probado empleando número ya que el campo es alfanumérico pero siempre se asocia el código cuyo orden ascendente, en orden alfabético es el primero; que para nuestro caso es “ARG” (Argentina). Entonces por el solo hecho de crearse un nuevo registro, este queda asociado a la nacionalidad argentina cuando puede ser que no sea así. Pierdo la capacidad de poder identificar el registro con problemas.
Nico, ¿cómo puedo hacer para para poder migrar esta tabla sin perder el dato de estos faltantes?.
Hago una aclaración, nuestro fin es realizar liquidaciones paralelas y no detener en ninguna de las dos plataformas la carga de datos, por lo que la solución no puede ser tópica. Osea, es posible que nos encontremos en más de una vez con este escenario.
Gracias.

Hola Pablo, creo haber entendido tu pregunta. Te paso algunos datos asi los volcas a tu problema y hacemos un análisis mas preciso.

Como primer paso, el campo desc_abrev de la tabla dh30 NO acepta valor nulo (lo que acepta son 4 blancos).
Si en pervasive tenias definida una nacionalidad como ’ ’ , ‘sin nacionalidad’; cuando migres, el cvs te va a quedar como: 3| |Ninguna.

Te cuento que el sistema por código (no se puede cambiar) pone por defecto la nacionalidad ARG por defecto. Si en dh30 no tenes esa nacionalidad definida te va a indicar que no la puede agregar como nacionalidad por defecto. (No levanta el primero como indicas vos)

Creo que tienen que contemplar esto de la nacionalidad por defecto antes de migrar a Postgres.

Con los campos en null que ya tenes en dh08, lo que se puede hacer es un:
insert into dh30 values (3,‘sinn’,‘Sin Nacionalidad’);
update dh08 set codc_nacio=‘sinn’ where codc_nacio is null; --o sino puede ser where codc_nacio = ’ ’

Espero que se entienda, cualquier cosa seguimos en contacto.

Saludos
Nico.