Paquete DBMS_MAX_STRING_SIZE

El paquete DBMS_MAX_STRING_SIZE proporciona una interfaz para comprobar y cambiar el valor del parámetro de inicialización DBMS_MAX_STRING_SIZE.

Función CHECK_MAX_STRING_SIZE

Esta función comprueba si el parámetro MAX_STRING_SIZE se puede actualizar a un valor determinado y devuelve una lista de violaciones que impedirían que el parámetro se actualizara.

Sintaxis

DBMS_MAX_STRING_SIZE.CHECK_MAX_STRING_SIZE(
       new_value    IN VARCHAR2)
RETURN DBMS_MAX_STRING_SIZE_TBL;

Parámetros

Parámetro Descripción

new_value

Especifica el nuevo valor de parámetro MAX_STRING_SIZE que se va a definir. El único valor válido es:'STANDARD' .

Notas de uso

Si la lista de devolución está vacía, no hay violaciones y se puede realizar la actualización MAX_STRING_SIZE.

Ejemplo

SELECT * FROM TABLE(DBMS_MAX_STRING_SIZE.CHECK_MAX_STRING_SIZE('STANDARD'));
 
TYPE   OBJECT_OWNER OBJECT_NAME COLUMN_NAME    REASON                                       
------ ------------ ----------- -------------- ---------------------------------------------
COLUMN ADMIN        SALES       CUST_NOTES     Physical column exceeds STANDARD length limit   
1 rows selected.   

MODIFY_MAX_STRING_SIZE Procedimiento

Este procedimiento actualiza el valor del parámetro MAX_STRING_SIZE a un valor determinado.

Sintaxis

DBMS_MAX_STRING_SIZE.MODIFY_MAX_STRING_SIZE(
          new_value    IN VARCHAR2);

Donde: user_account es el nombre de la cuenta de usuario (nombre de esquema).

Parámetros

Parámetro Descripción

new_value

Especifica el nuevo valor de parámetro MAX_STRING_SIZE que se va a definir. El único valor válido es: 'STANDARD'.

Notas de uso

  • El uso de DBMS_MAX_STRING_SIZE.MODIFY_MAX_STRING_SIZE es un cambio unidireccional que no se puede revertir. Después de cambiar una base de datos al estilo STANDARD de soportar una longitud máxima de 4000 bytes para los tipos de dato VARCHAR2, NVARCHAR2 y RAW, no puede volver a activar los tipos de dato EXTENDED.

  • Al usuario ADMIN se le otorga la cláusula WITH GRANT OPTION del privilegio EXECUTE en DBMS_MAX_STRING_SIZE. Oracle recomienda que no utilice GRANT EXECUTE en este paquete para otros usuarios.

  • Se emite el error ORA-20000 si existe algún objeto que impida que MAX_STRING_SIZE se actualice.

  • Al usuario ADMIN se le otorga la cláusula WITH GRANT OPTION del privilegio EXECUTE en DBMS_MAX_STRING_SIZE. Oracle recomienda que no utilice GRANT EXECUTE en este paquete para otros usuarios.

Ejemplo

SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME = 'max_string_size';

NAME                 VALUE
max_string_size      EXTENDED


   BEGIN
     DBMS_MAX_STRING_SIZE.MODIFY_MAX_STRING_SIZE('STANDARD');
   END;
/ 


PL/SQL procedure successfully completed.

SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME = 'max_string_size';

NAME                 VALUE
max_string_size      STANDARD