Estou tentando importar uma exportação do Oracle 11 para o Oracle 11 XE.
Eu recebo as seguintes mensagens:
importação no XE fehlerhaft A importação feita no conjunto de caracteres WE8MSWIN1252 e no
servidor de importação do conjunto de caracteres AL16UTF16 NCHAR usa o conjunto de caracteres AL32UTF8 (possível conversão de conjunto de caracteres)
Alguma idéia, como posso importar esse despejo para o Oracle 11 XE?
Editar:
Dada uma tabela
CREATE TABLE BDATA.Artikel(
Key VARCHAR2(3) NOT NULL,
Name VARCHAR2(60) NOT NULL,
Abkuerzung VARCHAR2(5) NOT NULL
);
Eu recebo erros 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ö
Algumas linhas estão ausentes na importação.
Você não tem uma opção de conjunto de caracteres no XE, portanto, não pode alterá-lo para se adequar ao banco de dados que está tentando importar. Seria prático migrar o banco de dados de origem antes da exportação?
A importação deve funcionar, mas a conversão do conjunto de caracteres pode significar que algumas colunas de texto com caracteres não-ascii não terão a mesma aparência após a importação. E as linhas podem ser rejeitadas se forem muito longas no novo conjunto de caracteres.
No seu caso, você está convertendo para UTF8, o que significa que é possível que um caractere de byte cresça durante a conversão para 2 ( ou mais, em teoria ). Pode ser necessário aumentar o tamanho da coluna antes de exportar ou ajustar o esquema de destino e importar os dados em uma etapa separada. Consulte aqui para outros possíveis problemas de truncamento de dados
fonte
A maneira mais fácil: (Shutdown neccesary) :
Primeiro, conecte como sysdba:
Em seguida, execute o seguinte script:
Funcionou para mim em um Oracle 12c Standard Two Edition
Retirado de: http://www.blogdelpibe.com/2015/05/como-solucionar-el-error-ora-12899.html
fonte
Isso funcionou para mim. Em vez disso:
Tente algo assim no bash:
Isso muda a cada
col1 VARCHAR2(n)
paracol1 VARCHAR2(n CHAR)
em linhas começando comCREATE TABLE
. Você também pode mudardata.dmp
antes de executá-lo, se não conseguir,<(...)
por exemplo:... mas não é necessário no bash e algo pode dar errado na conversão ou no backup, conforme declarado
-i.bk
.fonte