txt - pivot oracle 10g
Cargar datos del archivo csv en la tabla de Oracle desde la lĂnea de comando (1)
Intenté con el cargador sql. La cuestión es que la tabla debe estar vacía para la carga de datos. Hay alguna forma de cargar los datos sin truncar la tabla. Los datos CSV deben adjuntarse en la tabla. Estoy usando Oracle 11g.
La documentación de SQL * Loader dice:
Cuando está cargando una tabla, puede usar la cláusula
INTO TABLE
para especificar un método de carga específico de la tabla (INSERT
,APPEND
,REPLACE
oTRUNCATE
) que se aplica solo a esa tabla. Ese método anula el método global de carga de tablas. El método de carga de tablas global esINSERT
, de forma predeterminada, a menos que se especifique un método diferente antes de cualquier cláusulaINTO TABLE
.
Por lo tanto, de manera predeterminada, la carga de la tabla estará en modo INSERT
, lo que requiere que la tabla esté vacía.
La documentación también explica cómo cargar datos en una tabla no vacía ; en su caso, desea conservar los datos existentes:
ADJUNTAR
Si ya existen datos en la tabla, SQL * Loader le agrega las nuevas filas. Si los datos aún no existen, entonces las nuevas filas simplemente se cargan. Debe tener privilegioSELECT
para usar la opciónAPPEND
.
Por lo tanto, su archivo de control deberá decir algo como esto (como se muestra en su ejemplo ):
LOAD DATA
INFILE ''my_file.dat''
BADFILE ''my_file.bad''
DISCARDFILE ''my_file.dsc''
APPEND
INTO TABLE my_table
...
También podría considerar usar los nuevos datos CSV como una tabla externa e insertarlos en su tabla real, lo que podría ser un poco más flexible.