Te damos el hallazgo a este rompecabezas, o por lo menos eso esperamos. Si presentas alguna inquietud puedes escribirlo en el apartado de comentarios y sin dudas
Solución:
En Oracle, para insertar varias filas en la tabla t con las columnas col1, col2 y col3, puede usar la siguiente sintaxis:
INSERT ALL
INTO t (col1, col2, col3) VALUES ('val1_1', 'val1_2', 'val1_3')
INTO t (col1, col2, col3) VALUES ('val2_1', 'val2_2', 'val2_3')
INTO t (col1, col2, col3) VALUES ('val3_1', 'val3_2', 'val3_3')
.
.
.
SELECT 1 FROM DUAL;
Esto funciona en Oracle:
insert into pager (PAG_ID,PAG_PARENT,PAG_NAME,PAG_ACTIVE)
select 8000,0,'Multi 8000',1 from dual
union all select 8001,0,'Multi 8001',1 from dual
Lo que hay que recordar aquí es usar el from dual
declaración.
Utilice SQL*Loader. Se necesita un poco de configuración, pero si esto no es único, vale la pena.
Crear mesa
SQL> create table ldr_test (id number(10) primary key, description varchar2(20));
Table created.
SQL>
Crear CSV
oracle-2% cat ldr_test.csv
1,Apple
2,Orange
3,Pear
oracle-2%
Crear archivo de control del cargador
oracle-2% cat ldr_test.ctl
load data
infile 'ldr_test.csv'
into table ldr_test
fields terminated by "," optionally enclosed by '"'
( id, description )
oracle-2%
Ejecutar el comando SQL*Loader
oracle-2% sqlldr control=ldr_test.ctl
Password:
SQL*Loader: Release 9.2.0.5.0 - Production on Wed Sep 3 12:26:46 2008
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Commit point reached - logical record count 3
Confirmar inserción
SQL> select * from ldr_test;
ID DESCRIPTION
---------- --------------------
1 Apple
2 Orange
3 Pear
SQL>
SQL*Loader tiene muchas opciones y puede tomar prácticamente cualquier archivo de texto como entrada. Incluso puede alinear los datos en su archivo de control si lo desea.
Aquí hay una página con más detalles -> SQL*Loader
Puedes añadir valor a nuestro contenido asistiendo con tu veteranía en los comentarios.