[SOLUCIONADO] Error en Dbimport 460 - Statement length exceeds maximum.

Hola!!
Version de la base de datos:2.05.2, informix 9.4
Al hacer un dbimport no tarda nada que me aparece el siguiente error
Hago dbimport base_de_datos -d datos

*** prepare sqlobj

460 - Statement length exceeds maximum.

Se que tiene que ver con que el esquema de la tabla es muy grande, pero no he podido solucionarlo.
Adjunto el dbimport.OUT
Saludos!


Hola Pilar

Habría que ver que hay despues de esa línea en el archivo .sql
Con esa tabla y sin filas, es medio raro.
No tendrás algun caracter extraño en ese archivo?

Emilio

Hola! Esto es lo siguiente
create table “dba”.log_atr_eval_parc
(
logid serial not null ,
comision integer,
evaluacion integer,
escala_notas integer,
usuario varchar(8)
default user not null ,
fecha_act datetime year to second
default current year to second not null ,
oper char(1) not null ,
primary key (logid)
);
revoke all on “dba”.log_atr_eval_parc from “public”;

{ TABLE “dba”.sga_eval_parc row size = 59 number of columns = 5 index size = 36 }
{ unload file name = sga_e00320.unl number of rows = 5 },

sga_e00320 tiene lo siguiente
1|Primer Parcial|1er. Parcial|1||
3|Recuperatorio común|Recuperatorio|2|1|
2|Segundo Parcial|2do. Parcial|1||
5|Recuperatirio 2do. Parcial|Rec. 2do. Parc.|2|1|
4|Recuperatirio 1er. Parcial|Rec. 1er. Parc.|2|1|
Te mando el archivo completo

GRACIAS!


Tome una base nueva y lo que hice de diferente es que NO elimine del sql los cuadraditos.
Es decir, cada vez que necesito hacer un dbimport yo edito el archivo sql y hago 2 sql, uno con los triggers y updates y el otro con los procedures. Antes de hacer esto primero elimino los espacios que aparecen como “cuadraditos”, en esa base vi muchos al comienzo que por lo general son al finalizar del renglon (como si fueran los enter); por esto supongo que al eliminarlos quedo alguna sentencia mal formada.
SALUDOS, GRACIAS

Hola Pilar

Eso normalmente se produce al pasar de un linux a un DOS o viceversa.
Hay programas (o al menos habia) para hacer esa traducción sin inconvenientes.

Emilio

Hola pilar
¿que sistema operativo tienen el equipo que haces el dbimport y el del dbexport?

HOLA
ES EN EL SERVIDOR, WINDOWS SERVER 2000 SERVICE PACK4.
AHORA YA ME ESTA ANDANDO. PUEDE SER POR LO QUE COMENTE?
SALUDOS
GRACIAS

Lo de linux y windows fue porque es el problema mas comun.
estrictamente hablando es un problema de encoding de los sistemas operativos.
inclusive un windows en castellano y otro en ingles pueden generarte este problema.

Ah!
Claro, ahora me doy cuenta que esta base de datos es en otro servidor, un windows de otra version. Es decir, el dbexport se hizo en un windows xp creo, lo que estoy segura es que es una version mas nueva que donde hago el dbimport, lo estoy haciendo en mi servidor win server 2000.
GRACIAS!

Este problema se da por esos caracteres que ves en el archivo de la estructura de la base (.sql) que en algunos casos lo detecta como caracter de nueva linea y en otros no y toma todo seguido como si fuera una unica sentencia y cuando sobrepasa cierta longitud (creo 32kb) da error.
Se da en algunos casos cuando el sistema operativo que se hizo el export y donde se esta intentando importar no es el mismo.
Lo que tambien en algun momento me sucedio es que el problema se daba cuando compactaba el export (con el winrar) y al descompactarlo para importar la base el archivo sql quedaba diferente (por esos caracteres) que el original.

Ya que están con ese tema yo cuento y pregunto …

A mi me ha pasado unas cuantas veces y todo trabajando en entornos Windows. Asumo que es como dice Emilio, un problema de encoding. Ahora bien, hay alguna manera de corregirlo? (para no propagar esos caracteres en la nueva base).

Yo probé con distintos editores y nunca conseguí eliminarlos … Y me cansé y no los elimino, aunque me gustaría …

Otra cosa más, si uno importa con esos caracteres, esos caracteres quedan grabados en los SP y en la siguiente exportación siempre van a aparecer?

Si fuera asi, hay alguna manera de eliminarlos en la base?

Saludos

Gustavo

Yo tampoco encontré una forma facil de eliminarlos.
En cada importación/exportación que hagas se agregarán esos caracteres.
En un momento, llegué a tener 5 lineas en blanco entre cada linea de los sp.

El único programa que conozco que reemplaza dos saltos de linea por uno es el word.
El problema es que luego los sp se tornan ilegibles puesto que todas las líneas están amontonadas.

Un día me puse a recrear procedures desde el catálogo. El punto era acordarse bien de los personalizados.

Emilio:

Que mal!! Que respuesta desanimadora … jaja!! A mi me pasó algo similar y creí que era el único tonto …

Espero que alguien encuentre algún día alguna solución piola. Si la encuentro, aviso.

Saludos

Gustavo

todo el problema son las personalizaciones en los procedures del siu.

vos podés situarte (en windows) con una consola DOS en el catalogo de stored procedure y escribir

copy *.sql procedures.sql

luego editas procedures.sql y eliminas los comentarios en los
– drop procedure…

detalles mas o menos podrías crear todo de vuelta en minutos.
luego recrear los procedures del siu que personalizastes.

Emilio