sql >> Base de Datos >  >> RDS >> Oracle

El campo en el archivo de datos excede la longitud máxima:error

El mensaje de error se debe a que los datos leídos desde el archivo de datos son más grandes que el búfer de caracteres predeterminado de sqlldr de 255, que se usa si no se especifica CHAR ni tamaño. Tenga en cuenta que esto es diferente al tamaño de la columna a la que corresponde el campo. Por ejemplo, si tengo una columna de tabla de VARCHAR2 (4000), pero no doy explícitamente un tamaño en el archivo de control

cola  not null,

y los datos en el archivo de datos exceden 255 pero tienen menos de 4000 de longitud, obtendrá el error.

Sin embargo, si el archivo de control establece el tamaño del búfer de esta manera:

cola char(4000) not null,

todo estará bien como si creara un búfer más grande (aquí coincide con el tamaño de la columna). Por lo tanto, acostúmbrese a incluir siempre los tamaños de las columnas. Ahórrese algunas molestias y cree una función para generar un archivo de control predeterminado para usted... espere, publiqué el mío para usted, pruébelo:https://stackoverflow.com/a/37947714/2543416