过程未插入表中

时间:2019-05-07 21:14:58

标签: mysql sql database oracle procedure

我试图弄清楚如何插入#TableA(HIST_REMEDY)中不存在的#TableA(STAGE_REMEDY)中存储的记录。使用Date(在我的情况下为FECHA_ENVIO字段)进行相互比较,只是为了验证我是否将仅插入NEW数据并以正确的方式进行分组。

我正在使用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意味着如果表在STAGE_REMEDY中有30000条记录,其中trunc(FECHA_ENVIO)=日期'2019-05-07',在HIST_REMEDY中有一条记录,其中trunc(FECHA_ENVIO)=日期'2019-05 -07'不插入任何记录。

0 个答案:

没有答案