ifx2pg.kjb

Al iniciar el job del asunto, emite un mensaje de error:

script2pg - ERROR: la escala de NUMERIC, 255, debe estar entre 0 y la precisión 17

Creo que el error se encuentra en el G2/01_IFX2PG/schema_g2.sql

CREATE TABLE mig.t_promedio (                                                                                                                                                                                                                                  
nro_inscripcion varchar(25),                                                                                                                                                                                                                                   
nro_documento varchar(25),                                                                                                                                                                                                                                     
unidad_academica varchar(25),                                                                                                                                                                                                                                  
legajo varchar(25),                                                                                                                                                                                                                                            
nota decimal(17, 255),                                                                                                                                                                                                                                         
evaluacion varchar(1)                                                                                                                                                                                                                                          
);        

Creo que debería decir

nota decimal(17, 25),         

Scripts de migración 3.13.0

Gracias

Hola Javier

Como está definido ese campo en informix?

El segundo valor de decimal (x.y) debe ser menor que el primero.

Emilio

Hola Emilio,
está definido así:

nota                 decimal(16)

Pero como es una tabla propia, la voy a excluir del pasaje. Supongo que se debe modificar el archivo

migracion/G2/01_IFX2PG/script_1.sql

Javier

Buenas Damián, exactamente para excluirla ese es el script donde debes incluir las tablas que no queres pasar en la migración.
Por si mas adelante quisieras incluir la tabla o probar de incluirla, fijate de modificar el archivo script_2.sql en la línea 104 donde se válida que el tipo de dato es decimal para convertirlo a su correspondiente en postgres.

Si encontras como debería ser esa línea coméntanos así lo mejoramos para la próxima versión.

Saludos

Hola, podría ser así:

define vc_decimal varchar(10);
...
elif vi_coltype = 5 or vi_coltype = 261 then
        
                LET vc_decimal = mod(vi_collength, 256);
                if mod(vi_collength, 256) = 255 then
                LET vc_decimal = '0';
                end if; 
                if vi_colno = vi_maxcol then
                        Return vc_colname || ' decimal(' || round(vi_collength/256,0) ||', ' || vc_decimal || ')' with resume;
                else
                        Return vc_colname || ' decimal(' || round(vi_collength/256,0) ||', ' || vc_decimal || '),' with resume;
                end if;

Saludos

En cuanto pueda pruebo eso para ver si anda con los tipos de datos que estabamos teniendo problemas.

Saludos

Buenas Damián perdón por la tardanza en la respuesta, cambie las líneas tal como comentaste con distintos tipos de campos en decimal con o sin decimal y anduvo de maravilla.
Si pueden también prueben ustedes este cambio para ver que también les anda.

Saludos.

Hola José, con este cambio funcionó el pasaje.
Saludos

Buenísimo, ya hemos incorporado está mejora para futuras versiones.

Saludos.