Oracle
 sql >> Database >  >> RDS >> Oracle

Il campo nel file di dati supera la lunghezza massima - errore

Il messaggio di errore è dovuto al fatto che i dati letti dal file di dati sono più grandi del buffer di caratteri predefinito di sqlldr di 255 che viene utilizzato se non vengono specificati CHAR e dimensioni. Nota che è diverso dalla dimensione della colonna a cui corrisponde il campo. Ad esempio, se ho una colonna di tabella di VARCHAR2(4000), ma non fornisco esplicitamente una dimensione nel file di controllo

cola  not null,

e i dati nel file di dati superano 255 ma hanno una lunghezza inferiore a 4000, riceverai l'errore.

Tuttavia, se il file di controllo indica la dimensione del buffer in questo modo:

cola char(4000) not null,

tutto andrà bene come se creasse un buffer più grande (qui corrisponde alla dimensione della colonna). Quindi, prendi l'abitudine di includere sempre le dimensioni delle colonne. Risparmiati qualche seccatura e crea una funzione per generare un file di controllo predefinito per te... aspetta che ho pubblicato il mio per te, provalo:https://stackoverflow.com/a/37947714/2543416