Процедура не вставляется в таблицу - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь понять, как вставить записи, хранящиеся в #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' никакие записи не будут вставлены.

...