Прежде всего, приведенный выше код не будет выполняться из-за синтаксических ошибок в строках, которые читают
PEU_SEGUNDO_NOMBRE,
и
cur_rows (I).PEU_SEGUNDO_NOMBRE,
Завершающие запятые будут вызывать компиляциюсбой.
Во-вторых, построчная обработка имеет тенденцию быть медленной, даже когда вы собираете данные в память из базы данных.Я предлагаю вам использовать MERGE
, который заменяет логику курсора и петли одним оператором:
MERGE INTO TABLE_B b
USING TABLE_A a
ON (b.PEU_IDENTIFICACION = a.PEU_IDENTIFICACION AND
NVL(b.PEU_PRIMER_NOMBRE, '0') = NVL (a.PEU_PRIMER_NOMBRE, '0') AND
NVL (b.PEU_SEGUNDO_NOMBRE, '0') = NVL(a.PEU_SEGUNDO_NOMBRE, '0') AND
b.PEU_PRIMER_APELLIDO = a.PEU_PRIMER_APELLIDO AND
NVL(b.PEU_SEGUNDO_APELLIDO, '0') = NVL(a.PEU_SEGUNDO_APELLIDO, '0') AND
b.PEU_FECHA_NACIMIENTO = a.PEU_FECHA_NACIMIENTO)
WHEN NOT MATCHED THEN
INSERT (PEU_ID,
PEU_IDENTIFICACION,
PEU_PRIMER_APELLIDO,
PEU_SEGUNDO_APELLIDO,
PEU_PRIMER_NOMBRE,
PEU_SEGUNDO_NOMBRE)
VALUES (a.PEU_ID,
a.PEU_TIPO_IDENTIFICACION,
a.PEU_IDENTIFICACION,
a.PEU_PRIMER_APELLIDO,
a.PEU_SEGUNDO_APELLIDO,
a.PEU_PRIMER_NOMBRE,
a.PEU_SEGUNDO_NOMBRE);
Удачи.