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!
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?
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
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
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.
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?
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.