Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

O campo no arquivo de dados excede o comprimento máximo - erro


A mensagem de erro ocorre porque os dados lidos do arquivo de dados são maiores que o buffer de caracteres padrão do sqlldr de 255, que é usado se nenhum CHAR e tamanho forem especificados. Observe que isso é diferente do tamanho da coluna à qual o campo corresponde. Por exemplo, se eu tiver uma coluna de tabela de VARCHAR2(4000), mas não fornecer explicitamente um tamanho no arquivo de controle
cola  not null,

e os dados no arquivo de dados excederem 255, mas tiverem menos de 4.000 de comprimento, você receberá o erro.

No entanto, se o arquivo de controle indicar o tamanho do buffer assim:
cola char(4000) not null,

tudo ficará bom como se criasse um buffer maior (aqui corresponde ao tamanho da coluna). Então, apenas adquira o hábito de sempre incluir os tamanhos das colunas. Economize alguns problemas e crie uma função para gerar um arquivo de controle padrão para você... espere, eu postei o meu para você, experimente:https://stackoverflow.com/a/37947714/2543416