No estoy familiarizado con PLSQL, pero tengo que realizar una inserción masiva para una tarea.oráculo bulk insert
Básicamente tengo que consultar la tabla uno para obtener una columna y luego usarla en una tabla diferente para insertarla. Algo como esto:
for (ids in a file As cur_id)
{
Select DISTINCT column1 As col1_list from table1 where id=cur_id
for (cols in col1_list as cur_col)
Insert into table2 values ('cur_id','cur_col','214','234','first 3 chars of cur_col')
}
Ahora, tengo alrededor de 4k + ID en el archivo y cada ID tendría diferente gama de distinta col1: Max: 165 millones de dólares, min ~ 2k
que estoy tratando de lograr este "Leer de una tabla e insertar en otra mediante inserción masiva", que está bien si esto se ejecuta durante la noche, etc.
tengo este script desde una cierta investigación en línea:
CREATE OR REPLACE PROCEDURE test_proc
IS
TYPE TObjectTable IS TABLE OF ALL_OBJECTS%ROWTYPE;
ObjectTable$ TObjectTable;
BEGIN
SELECT * BULK COLLECT INTO ObjectTable$
FROM ALL_OBJECTS;
FORALL x in ObjectTable$.First..ObjectTable$.Last
INSERT INTO t1 VALUES ObjectTable$(x) ;
END;
I Creo que esto podría ser útil en mi caso, pero no entiendo muy bien la semántica. ¿Dónde menciono la columna 1 ... también para los valores de inserción se expresan como ObjectTable $ (x) en lugar de valores (.., .., ..).
Por favor alguien puede explicar la secuencia de comandos para mí y ayudarme a modificar a mi caso de uso usando tabla1, tabla2, col1, ID de las variables, etc que he mencionado en mi ejemplo.
El DB 10g se
Gracias!
Cuál es "gama de distinta col1: Max: 165 millones de dólares, min ~ 2k" supone ¿media? Por favor, describa mejor las columnas de table1 y table2. – Codo