Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/08/2011, 14:51
Avatar de matanga
matanga
 
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: Importacion de datos Tabla externa o sql*loader

Para resover esto puedes determinar el contenido de los campos varchar entre comillas dobles en el fichero de datos y utilizar la sentencia optionally enclosed by '"' en el fichero de control o lo definición de la tabla, por ejemplo

Código:
C:\Temp>more data.txt
1|"texto"
2|"texto|texto"
Código:
C:\Temp>more control.txt
load data
into table t1
fields terminated by "|" optionally enclosed by '"'
(id,data)
Código:
C:\Temp>sqlldr user/pass@sid control=control.txt data=data.txt

SQL*Loader: Release 10.2.0.1.0 - Production on Mon Aug 15 22:30:12 2011

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

Commit point reached - logical record count 2
Código:
SQL> select * from t1;

        ID DATA
---------- ------------------------------
         1 texto
         2 texto|texto
1. Ten en mente que deberás quitar el caracter de escapeo "\", de lo contrario será insertado con el resto del registro.
2. Las tablas externas del tipo ORACLE_LOADER utilizan el SQL*Loader para la carga de datos, es por eso que el comportamiento es el mismo.

Saludos