martes, 10 de junio de 2008

FRM-30187: El tamaño de la columna CHAR en el grupo de registros debe estar comprendido entre 1 y 2000.

FRM-30187: El tamaño de la columna CHAR en el grupo de registros debe estar comprendido entre 1 y 2000.
Grupo de registros LOVxxx
Pantalla: xxxxxx

Situación:

Creamos una lista de valores o la editamos y al compilar nos sale este error.

Explicación:

Cuando creamos o editamos a partir de una consulta (select) y esta contiene concatenaciones, llamadas a funciones o demás factores que impiden a Oracle Forms calcular la longitud del campo varchar2 nos pone por defecto 4000. Hay quien piensa que es un error de Oracle Forms porque no tiene sentido poner 4000 y que luego te diga que el máximo es 2000 y hay quien piensa que este error te lo pone para que lo redefinas tú manualmente.

Solución:

Sea como sea hay que ir al grupo de registros (record group) sobre el que va la Lista de valores (LOV) ( lo hayamos creado antes que la LOV o mediante el LOV wizzard o asistente de LOV) y en Column Specifications le damos para abrir el popup

Y vemos que en las columnas de tipo Character nos ha puesto de longitud (length) 4000 así que los redefinimos todos y guardamos. Ya podemos compilar bien ;P

Situación 2:

Comprobamos los campos como se indica arriba y aun así sale el error.

Explicación:

Cuando creamos el Record Group y la LOV a veces en la select ponemos más campos de los que realmente usamos y aunque no salgan luego cuando miramos las columnas y tal, allá están.

Solución:

Si realmente no los necesitamos los quitamos y si los necesitamos pues tenemos que hacerlos aparecer, aunque luego los ocultemos, para poder especificar una longitud inferior a los 4000.

No hay comentarios:

Que versión de Oracle Forms usas?