Oracle - error:el literal no coincide

 
Vista:

error:el literal no coincide

Publicado por daniel (11 intervenciones) el 21/04/2005 16:01:16
saludos ya corre el archivo de control pero cuando esta evaluando los datos para subir encuantra un error "ora-01861 el literal no coincide con la cadena de formato"
lo presenta en un campo fecha. en la base de datos esta como DATE, y en el archivo plano lo tengo dd/mm/aaaa. como puedo saber en que estriba la diferencia?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:error:el literal no coincide

Publicado por Luis (41 intervenciones) el 21/04/2005 16:21:34
sabes a la primera no he probado insertar directamente un date.
lo que he hecho yo es insertar primero en una tabla temporal de solo campos tipo char o varchar2 y luego ya insertados en dicha tabla con sl sqlloader hago un insert into tablafinal select campo1,to_date(campofecha,'dd/mm/yyyy') from tabla_temporal
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:error:el literal no coincide

Publicado por Leonardo (93 intervenciones) el 21/04/2005 16:46:49
Aqui un ejemplo de carga de datos para ancho fijo y formato de fecha:

Load Data
INFILE cnt_movi_cuentadis.dat
append
INTO TABLE Cnt_Movi_Cuenta
(NUMERO_ASIENTO_CONTA POSITION(1:4) INTEGER EXTERNAL,
NUMERO_REGISTRO POSITION(5:7) INTEGER EXTERNAL,
ANIO POSITION(8:11) INTEGER EXTERNAL,
VALOR_ASIENTO POSITION(12:22) DECIMAL EXTERNAL,
MES POSITION(23:24) INTEGER EXTERNAL,
CODIGO_CUENTA POSITION(25:44) CHAR,
COD_EMPRESA POSITION(45:47) CHAR,
COD_AGENCIA POSITION(48:52) CHAR,
FECHA POSITION(53:60) DATE "rrrrmmdd",
TIPO POSITION(61:61) CHAR,
REFERENCIA POSITION(62:161) CHAR,
DOCUMENTO POSITION(162:162) INTEGER EXTERNAL,
TIPO_DOC POSITION(163:164) CHAR)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:error:el literal no coincide

Publicado por daniel (11 intervenciones) el 22/04/2005 15:20:14
ok, pero hay la posibilidad de declarar el tipo de dato pero sin que quede fijo. me explico, estoy usando el termino "terminated by ";". me parece mas engorroso usar la posicion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:error:el literal no coincide

Publicado por daniel (11 intervenciones) el 22/04/2005 15:31:39
seguimos, use en el .ctl la siguiente estructura:

campo decimal external terminated by ";"

lo procesa sin error de sintaxis pero en el .log me da error de "numero no valido".
en la BD el campo esta definido DECIMAL (16,2)
y en el archivo a subir el el numero que coincide con ese campo esta asi
251452.25
cual puede ser la causa de este error?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

descripcion del error

Publicado por daniel (11 intervenciones) el 22/04/2005 16:12:14
esto lo saque de una base de errores que baje de la web.

ORA-01722: invalid number
Cause: The attempted conversion of a character string to a number failed because the character string was not a valid numeric literal. Only numeric fields or character fields containing numeric data may be used in arithmetic functions or expressions. Only numeric fields may be added to or subtracted from dates.

Action: Check the character strings in the function or expression. Check that they contain only numbers, a sign, a decimal point, and the character "E" or "e" and retry the operation.

A QUE SE REFIEREN CON ESA "E"? se la tengo que anexar al valos numerico en el archivo que estoy subiendo? porque he hecho varios cambios y aun me da el error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:descripcion del error

Publicado por Leonardo (93 intervenciones) el 22/04/2005 21:53:23
Porque no envias dos lineas del archivo de datos y la descripcion de los campos (desc tabla1;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:error:el literal no coincide

Publicado por JORGE FELIX OROZCO SALMERON (1 intervención) el 10/03/2006 02:40:03
El error estriba en que el servidor no tiene el formato de fecha en que lo estas capturando puedes preformatear tus datos con la sentencia
alter session set nls_date_format='dd/mm/YYY'

a mi me pasaba cuando daba de alta fechas en un servidor unix que no aceptaba este formato porque estaba configurado como mm/dd/yyyy entonces al alterar yo el formato de fecha de mi sesión obligo a este formateo automatico.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

error:el literal no coincide

Publicado por Julio Rafael (1 intervención) el 01/08/2016 19:57:53
A mi me paso este error cuando en un bloque anonimo declare una extension de variable incorrecta a una columna especifica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar