Você está importando dados para um banco de dados usando o conjunto de caracteres AL32UTF8 (este é o padrão). O importador deve, portanto, converter os caracteres para encaixar isso e alguns se tornarão caracteres de múltiplos bytes como você encontrou. Existem duas maneiras de lidar com isso:
1) Se você não precisa do Unicode no novo banco de dados, recrie-o no mesmo conjunto de caracteres que o banco de dados antigo. Execute este código no banco de dados antigo para obter o conjunto de caracteres e usar isso
SELECT parameter, value
FROM nls_database_parameters
WHERE parameter
LIKE '%CHARACTERSET';
Quando o banco de dados novo e antigo tiver o mesmo conjunto de caracteres, a importação não terá que fazer a conversão.
2) Se você puder pré-criar as tabelas, você pode usar o Parâmetro NLS_LENGTH_SEMANTICS . Se você definir isso como CHAR em vez do padrão BYTE, um VARCHAR2 (5) terá espaço suficiente para armazenar 5 caracteres no conjunto de caracteres do banco de dados (potencialmente até 20 bytes) em vez de 5 bytes (o que poderia permitir apenas 1 caractere ). Ou, em vez disso, você poderia modificar a DDL de criação de tabela para adicionar CHAR a cada declaração de coluna VARCHAR2. por exemplo,
CREATE TABLE xyz (column_x VARCHAR2(10 CHAR) NOT NULL);
Desta forma, você pode converter os dados para Unicode e ter um conjunto de caracteres melhor daqui para frente, e, desde que seu aplicativo possa suportá-lo, talvez esse seja o método preferido.