El problema de ejecutar solo ese comando ALTER DATABASE es que el diccionario de datos no se ha convertido y puede estar dañado.
Tuve el mismo problema. En mi caso, estamos usando Oracle 11g Express Edition (11.2.0.2.0) y realmente necesitamos que se ejecute en el juego de caracteres WE8MSWIN1252, pero no puedo cambiar el juego de caracteres en la instalación (siempre se instala con AL32UTF8).
Con un Oracle Client 11g instalado como administrador y ejecute solo el csscan full=y
(consulte este enlace https://oracle-base.com/articles/10g/character-set-migration) y observamos que hay problemas de datos perdidos y convertibles en nuestra base de datos. Pero los problemas están en los esquemas MDSYS (Oracle Spatial) y APEX_040000 (Oracle Application Express). Entonces, como no necesitamos estos productos, los eliminamos (consulte este enlace: http://fast-dba.blogspot.com.br/2014/04/how-to-remove-unwanted-components-from.html).
Luego, exportamos con expdp
los esquemas de los usuarios y soltamos a los usuarios (se deben volver a crear al final del proceso).
Ejecutando csscan nuevamente con full=y capture=y
, informa que: The data dictionary can be safely migrated using the CSALTER script
. Si el informe no tiene esto, el csalter.guión PLB no va a funcionar, porque hay algunas condiciones que no estarán satisfechos:
- inmutable para todos VARCHAR2 CHAR y datos extensos (Diccionario de datos y datos de aplicaciones)
- inmutables para todos los datos de aplicación CLOB
- inmutable y/o convertibles para todos diccionario de datos CLOB
En nuestro caso, estas condiciones fueron satisfechos y se corrió el guión csalter éxito. Además, este script ejecuta el comando ALTER DATABASE que está tratando de ejecutar y convierte los datos CLOB del diccionario de datos que es convertible.
Finalmente, creamos los usuarios y los espacios de tabla de nuestra aplicación e importamos el volcado de los datos de usuario con éxito.
¿Qué pasa con UTF8? si necesita espacio adicional para contener algunos caracteres, simplemente aumente la longitud del campo. – tbone
Me gustaría mantener la base de datos DDL idéntica en ambas instancias ... Estoy pensando en cambiar la columna a VARCHAR (6 caracteres) pero no sé si hay inconvenientes en este – alessandroasm
que suena como un plan razonable para mí (más que para cambiar los conjuntos de caracteres) – tbone