Я пытаюсь понять, как вставить записи, хранящиеся в #TableA (STAGE_REMEDY), которых нет в #TableB (HIST_REMEDY).Сравнивая друг друга с помощью Date (поле FECHA_ENVIO в моем случае), просто чтобы убедиться, что я буду вставлять только НОВЫЕ данные и правильно группировать их.
Я использую SQL Developer и пробовалразработать различные процедуры для достижения моей цели.Мой код ниже показывает, что я попробовал, что на самом деле не работает, просто работает (не вставляет данные в таблицу, я не знаю, почему).
create or replace procedure HISTORICO_PRUEBA
AS
BEGIN
INSERT INTO HIST_REMEDY (HORA_ENVIO, HORA_RESOLUCION,
TIEMPO_SLA_MINUTOS, GRUPO_ASIGNADO,INCIDENCIA,CUENTA,
RESUMEN,COMENTARIOS,ESTADO,
FECHA_ENVIO,FECHA_RESOLUCION,FECHA_ULTIMA_MODIFICACION,
USUARIO_ASIGNADO,REGION,CIUDAD,RESOLN1,RESOLN2,RESOLN3,
CN,NO_ACTIVIDAD,
OS,DEPARTAMENTO,ORGANIZACION,AREA,USUARIOR,NOMBRE,APELLIDO,GRUPO_ASIGNADO_MDA,AREA_ESCALA,
CATEGORIA_SLA,MAL_GENERADO,
USR_SIEBEL,NOMBRE_CLAVE,
AREA_PROVENIENTE,RECURRENTE,
ESCALADO,SEVERIDAD, SERVICIO)
SELECT HORA_ENVIO, HORA_RESOLUCION,
TIEMPO_SLA_MINUTOS, GRUPO_ASIGNADO,INCIDENCIA,CUENTA,
RESUMEN,COMENTARIOS,ESTADO,
FECHA_ENVIO,FECHA_RESOLUCION,FECHA_ULTIMA_MODIFICACION,
USUARIO_ASIGNADO,REGION,CIUDAD,RESOLN1,RESOLN2,RESOLN3,
CN,NO_ACTIVIDAD,
OS,DEPARTAMENTO,ORGANIZACION,AREA,USUARIOR,NOMBRE,APELLIDO,GRUPO_ASIGNADO_MDA,AREA_ESCALA,
CATEGORIA_SLA,MAL_GENERADO,
USR_SIEBEL,NOMBRE_CLAVE,
AREA_PROVENIENTE,RECURRENTE,
ESCALADO,SEVERIDAD, SERVICIO
FROM STAGE_REMEDY
WHERE NOT EXISTS (SELECT * FROM HIST_REMEDY WHERE SUBSTR (HIST_REMEDY.FECHA_ENVIO,0,10) = SUBSTR (STAGE_REMEDY.FECHA_ENVIO,0,10))
GROUP BY HORA_ENVIO, HORA_RESOLUCION,
TIEMPO_SLA_MINUTOS, GRUPO_ASIGNADO,INCIDENCIA,CUENTA,
RESUMEN,COMENTARIOS,ESTADO,
FECHA_ENVIO,FECHA_RESOLUCION,FECHA_ULTIMA_MODIFICACION,
USUARIO_ASIGNADO,REGION,CIUDAD,RESOLN1,RESOLN2,RESOLN3,
CN,NO_ACTIVIDAD,
OS,DEPARTAMENTO,ORGANIZACION,AREA,USUARIOR,NOMBRE,APELLIDO,GRUPO_ASIGNADO_MDA,AREA_ESCALA,
CATEGORIA_SLA,MAL_GENERADO,
USR_SIEBEL,NOMBRE_CLAVE,
AREA_PROVENIENTE,RECURRENTE,
ESCALADO,SEVERIDAD, SERVICIO;
COMMIT;
END;
Я имел в виду использование NOT EXISTS означает, что еслитаблица содержит 30000 записей в STAGE_REMEDY, где trunc (FECHA_ENVIO) = дата '2019-05-07' и одна запись в HIST_REMEDY, где trunc (FECHA_ENVIO) = дата '2019-05-07' никакие записи не будут вставлены.