Estoy tratando de importar una exportación de Oracle 11 a Oracle 11 XE.
Recibo los siguientes mensajes:
la importación en XE fehlerhaft se realiza en el juego de caracteres WE8MSWIN1252 y el
servidor de importación de juego de caracteres AL16UTF16 NCHAR usa el juego de caracteres AL32UTF8 (posible conversión de juego de caracteres)
Alguna idea, ¿cómo puedo importar este volcado en Oracle 11 XE?
Editar:
Dada una mesa
CREATE TABLE BDATA.Artikel(
Key VARCHAR2(3) NOT NULL,
Name VARCHAR2(60) NOT NULL,
Abkuerzung VARCHAR2(5) NOT NULL
);
Me salen errores como este
IMP-00019: row rejected due to ORACLE error 12899
IMP-00003: ORACLE error 12899 encountered
ORA-12899: value too large for column "BDATA"."ARTIKEL"."ABKUERZUNG" (actual: 6, maximum: 5)
Column 1 ABL
Column 2 Aufbewahrungslösung
Column 3 AfbLö
Faltan algunas filas de la importación.
No tiene una opción de juego de caracteres en XE, por lo que no puede cambiarlo para adaptarlo a la base de datos que está intentando importar. ¿Sería práctico migrar la base de datos de origen antes de exportar?
La importación debería funcionar, pero la conversión del juego de caracteres puede significar que algunas columnas de texto con caracteres no ascii no se verán igual después de la importación. Y las filas se pueden rechazar si son demasiado largas en el nuevo conjunto de caracteres.
En su caso, está convirtiendo a UTF8, lo que significa que es posible que un carácter de un solo byte crezca durante la conversión a 2 ( o más en teoría ). Es posible que deba aumentar el tamaño de la columna antes de exportar o ajustar el esquema de destino e importar los datos en un paso separado. Vea aquí otros posibles problemas de truncamiento de datos.
fuente
La forma más fácil: (Apagado necesario) :
Primero, conéctese como sysdba:
A continuación, ejecute el siguiente script:
Funcionó para mí en un Oracle 12c Standard Two Edition
Tomado de: http://www.blogdelpibe.com/2015/05/como-solucionar-el-error-ora-12899.html
fuente
Esto funcionó para mí. En lugar de esto:
Pruebe algo como esto en bash:
Esto cambia cada
col1 VARCHAR2(n)
acol1 VARCHAR2(n CHAR)
en líneas que comienzan conCREATE TABLE
. También puede cambiardata.dmp
antes de ejecutar imp en él, si no puede hacerlo<(...)
en su shell, por ejemplo:... pero no es necesario en bash y algo podría salir mal en la conversión o al hacer la copia de seguridad como se indica en
-i.bk
.fuente