Oracle - No puedo cargar números decimales con SQL Loader

 
Vista:
sin imagen de perfil

No puedo cargar números decimales con SQL Loader

Publicado por Juan Carlos Ocampo de la Cruz (1 intervención) el 06/06/2006 23:54:50
Hola foro :-)

Intento cargar datos en la siguiente tabla con la siguiente estructura:

CREATE TABLE PRUEBA (
NOMBRE VARCHAR2 (10),
EDAD NUMBER (3,0),
SUELDO NUMBER (7,2),
FECH_NAC DATE,
DOMICILIO VARCHAR2 (20))

Con el SQL LOADER mediante un texto delimitado con "~" por ejemplo:

JUAN~32~1000.50~27/12/1971~OAXACA
CARLOS~32~1500.50~27/12/1971~SABANA

El archivo de control es el siguiente:

LOAD DATA
INFILE "C:\OraClip\Oraclip.Txt"
APPEND
INTO TABLE PRUEBA
FIELDS TERMINATED BY '~'
TRAILING NULLCOLS
(
NOMBRE,
EDAD,
SUELDO,
FECH_NAC,
DOMICILIO)

Cuando ejecuto el mandato:
SQLLDR LOGIN/PASW@Cadconec CONTROL=C:\ORACLIP\ORACLIP.CTL LOG=C:\ORACLIP\ORACLIP.LOG

No me carga ningun registro porque me da error en los números con decimales, marcando:
Record 2: Rejected - Error on table PRUEBA, column SUELDO.
ORA-01722: invalid number

Record 3: Rejected - Error on table PRUEBA, column SUELDO.
ORA-01722: invalid number

¿Alguien sabe como cargar datos con números con decimales en textos delimitados?
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:No puedo cargar números decimales con SQL Loade

Publicado por Carmen Junco (1 intervención) el 01/08/2007 22:39:43
LOAD DATA
INFILE 'C:\CARMEN\sqlloader\BORRAME.TXT'
append
INTO TABLE MOVIMIENTO
WHEN ORIGEN = 'AS'
FIELDS TERMINATED BY '#'
TRAILING NULLCOLS
(

MATERIAL CHAR NULLIF (MATERIAL=BLANKS)
, DEPOSITO CHAR NULLIF (DEPOSITO=BLANKS)
, TIPO_MOVIMIENTO CHAR NULLIF (TIPO_MOVIMIENTO=BLANKS)
, ORIGEN CHAR NULLIF (ORIGEN=BLANKS)
, CANTIDAD DECIMAL EXTERNAL NULLIF (CANTIDAD=BLANKS)
, FECHA_MOV DATE " DD-MM-YYYY HH:MI:SS" NULLIF (FECHA_MOV=BLANKS)
, MEDIDOR CHAR NULLIF (MEDIDOR=BLANKS)
, INGRESO_SALIDA CHAR NULLIF (INGRESO_SALIDA=BLANKS)
, NOTA_INGRESO CHAR NULLIF (NOTA_INGRESO=BLANKS)
, PROVEEDOR CHAR NULLIF (PROVEEDOR=BLANKS)
)

fijate en el campo cantidad asi declaras los decimales.
Espero te sirva.

bye
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