Maximum Lenght property en Oracle Forms 12c (12.2.1.4)

Este verano, Oracle publicó en este enlace la revisión 4 de las nuevas funcionalidades de la versión 12.2.1.4 de Forms & Reports, con algunos cambios en las imágenes y alguna nueva variable de entorno (FORMS_MAX_JVM_STACKTRACE y FORMS_ROWID_IS_NAVIGATION_ITEM).
En la revisión de este documento nos llamó la atención que se ha incrementado la longitud máxima de los ítems de texto desde la versión 12.2.1.4 y que no habíamos llegado a probar:

 

 

Text Item Maximum Length Increased

 

 

 

Comparando la documentación de forms, 12.2.1.3 vs 12.2.1.4 vemos la diferencia:

 

 

 

Como podéis apreciar, la documentación de este incremento es algo escueta, y nos interesa ver exactamente cómo funciona, por lo que hemos decidido crear una pequeña prueba de concepto. Así que manos a la obra:
Nos conectamos a una base de datos XE 19c.

 

 

 

Creamos la tabla e insertamos 8000 caracteres para una prueba inicial:

 

 

 

Nota: La misma prueba con un campo LONG en vez de CLOB funciona exactamente igual.
Arrancamos nuestro dominio de forms&Reports 12c. Empezamos por NodeManager:

 

 

 

Una vez arrancado NodeManager, arrancamos adminserver:

 

 

 

Arrancaremos WLS_FORMS.

 

 

 

Probamos que se pueda arrancar forms correctamente:

 

 

A partir de aquí, creamos un formulario de pruebas capaz de mantener esta tabla. Creamos una pantalla muy sencilla, simplemente para comprobar la nueva capacidad de datos. Una vez creada aceptando los valores por defecto, nos da un error de truncamiento:

 

 

 

Si nos fijamos en las propiedades, nos ha creado un campo “Long” con una longitud máxima de 240:

 

 

 

Así que lo cambiamos al valor máximo según la documentación (2097151):

 

 

 

Para ajustar un poco mas la prueba, creamos un pequeño PL/SQL capaz de rellenarnos los datos del campo, teniendo en cuenta que DBMS_RANDOM.STRING nos devuelve un máximo de 4000 caracteres.

 

 

 

Reconsultamos y de paso aprovechamos para probar el parámetro FORMS_SELECT_ON_CLICK en nuestro fichero de entorno:

 

 

 

Si recuperamos el texto, podemos ver que la longitud es la esperada:

 

 

 

En la revisión del documento de las nuevas funcionalidades, también existe la nueva variable de entorno FORMS_EXTENDED_STRING, que no tiene que ver con la prueba que hemos realizado pero que puede dar lugar a confusión. Esta variable de entorno está ligada con el cambio en BBDD MAX_STRING_SIZE, cambio no reversible una vez aplicado y que es específico para extender los límites en SQL de los tipos VARCHAR2, NVARCHAR2 y RAW en una BBDD 12.1+.

A TENER EN CUENTA:
En PL/SQL no se puede recuperar el valor del CLOB/Long debido al límite de 4000 en las variables VARCHAR2, por lo que el contenido del mismo no será accesible en el código PL/SQL.

 

 

 

Twitter
LinkedIn
Evolución, innovación y transformación
32 Service Expertise avalados por Oracle 
Nuestra propuesta de valor
Posts 100% Oracle
Sigue nuestro día a día