Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Problemas con delimitador de registros sqlldr

Estas en el tema de Problemas con delimitador de registros sqlldr en el foro de Oracle en Foros del Web. Tengo el siguiente problema. Sqlldr reconoce como delimitador de registros el enter o \n. Resulta que tengo campos en que los datos ya tienen enter, ...
  #1 (permalink)  
Antiguo 06/08/2008, 09:09
PVF
 
Fecha de Ingreso: agosto-2008
Ubicación: Valparaiso, Chile.
Mensajes: 3
Antigüedad: 16 años, 3 meses
Puntos: 0
Problemas con delimitador de registros sqlldr

Tengo el siguiente problema. Sqlldr reconoce como delimitador de registros el enter o \n. Resulta que tengo campos en que los datos ya tienen enter, entonces el sqlldr los reconoce como si fuese un nuevo registro.

Existe algun otro delimitador que reconozca sqlldr o alguna forma de resolver eso?.

Gracias.
  #2 (permalink)  
Antiguo 06/08/2008, 09:57
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años
Puntos: 85
Respuesta: Problemas con delimitador de registros sqlldr

Hola,

Es un poco caotico, pero se puede hacer, te dejo un ejemplo y un link a la documentacion (que tampoco esta muy clara)

Fichero de control

Código:
LOAD DATA
TRUNCATE
CONTINUEIF THIS (1)='*' 
INTO TABLE T1
FIELDS TERMINATED BY ','
(nombre position(*),
 apellido position(*)
)
Fichero de datos

Código:
+nombre1,apellido1
*nombre2,
+apellido2
+nombre3,apellido3
Con el "+" le indico que el registro siguiente es uno nuevo, y con el "*" le indico que el registro siguiente es el mismo (tanto el "+" como el "*" son caracteres de mi eleccion, pueden ser cualquiera).

Código:
oracle@10G> select * from t1;

NOMBRE                         APELLIDO
------------------------------ -----------
nombre1                        apellido1
nombre2                        apellido2
nombre3                        apellido3

http://download.oracle.com/docs/cd/B...e.htm#i1005509

Saludos
  #3 (permalink)  
Antiguo 06/08/2008, 10:09
PVF
 
Fecha de Ingreso: agosto-2008
Ubicación: Valparaiso, Chile.
Mensajes: 3
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Problemas con delimitador de registros sqlldr

Muchas gracias voy a leerlo con calma y te cuento.
  #4 (permalink)  
Antiguo 06/08/2008, 10:50
PVF
 
Fecha de Ingreso: agosto-2008
Ubicación: Valparaiso, Chile.
Mensajes: 3
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Problemas con delimitador de registros sqlldr

Cita:
Iniciado por matanga Ver Mensaje
Código:
+nombre1,apellido1
*nombre2,
+apellido2
+nombre3,apellido3
Ya ..entiendo. Y en el caso de querer insertar el "nombre 2" en el primer registro?.

Mira tengo algo asi

Código:
registro1;Mi direccion con 
enter;telefono
registro2;otra direccion pero sin enter;telefono
registro3;otra direccion
con enter;telefono
Como veras, sqlldr piensa que "enter" del primer y tercer registro, es un registro nuevo, valga la redundancia. Entonces en vez de tener 3 registros, me dice que tengo 5.

Quizas la respuesta va por lo que dices tu, pero si lo logras captar, me seria de gran utilidad.
  #5 (permalink)  
Antiguo 06/08/2008, 12:34
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años
Puntos: 85
Respuesta: Problemas con delimitador de registros sqlldr

Hola,

Código:
SQL> ho more c.ctl
LOAD DATA
TRUNCATE
CONTINUEIF THIS (1)='*' 
INTO TABLE T1
FIELDS TERMINATED BY ';'
(col01 position(*),
 col02 position(*),
 col03 position(*)
)

SQL> ho more d.dat
*registro1;Mi direccion con 
+enter;telefono
+registro2;otra direccion pero sin enter;telefono
*registro3;otra direccion
+con enter;telefono

SQL> ho sqlldr / control=c.ctl data=d.dat

SQL*Loader: Release 10.2.0.1.0 - Production on Sun Jun 8 16:26:49 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Commit point reached - logical record count 3

SQL> select * from t1;

COL01                          COL02                          COL03
------------------------------ ------------------------------ ---------------
registro1                      Mi direccion con enter         telefono
registro2                      otra direccion pero sin enter  telefono
registro3                      otra direccioncon enter        telefono
Saludos
  #6 (permalink)  
Antiguo 06/08/2008, 19:24
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 8 meses
Puntos: 7
Respuesta: Problemas con delimitador de registros sqlldr

...ese matanga siempre tan esplendido...
__________________
Blogzote.com :-) Mi blog
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:44.