CREATE OR REPLACE PROCEDURE sp_fdt_upd_rutas
( pch_tipo_cod char,
  pti_codigo number,
  pnu_secuencia number DEFAULT NULL,
  pnu_tipo number,
  pvc_archivo varchar2,
  pvc_ruta varchar2,
  pvc_tabla varchar2
)
AS
/********************************************************************/
/*** Reportes e Interfases de Data Tecnologia                     ***/
/*** Descripcion: crea registros en las tablas fdt_rutas          ***/
/*** Autor:	Diana Cecilia Rios Peinado                            ***/
/*** Fecha:	Abril 26 de 2005                                      ***/
/********************************************************************/
  vnu_secuencia   number(3);
BEGIN

  IF NVL(pnu_secuencia,0) = 0 THEN-- es un registro nuevo
     vnu_secuencia :=0;
     BEGIN
        SELECT MAX(secuencia)
        INTO vnu_secuencia
        FROM fdt_rutas
        WHERE operacion = pch_tipo_cod
        AND codigo = pti_codigo
        AND tipo = pnu_tipo;
     EXCEPTION
          WHEN OTHERS THEN vnu_secuencia :=0;   
     END;
     vnu_secuencia := NVL(vnu_secuencia,0) + 1;
  
      INSERT INTO fdt_rutas (operacion, codigo, tipo, secuencia, archivo, ruta, tabla)
      VALUES (pch_tipo_cod ,pti_codigo, pnu_tipo, vnu_secuencia, pvc_archivo, pvc_ruta, pvc_tabla);  
  ELSE
      UPDATE fdt_rutas
      SET archivo = pvc_archivo,
      ruta = pvc_ruta,
      tabla = pvc_tabla
      WHERE operacion = pch_tipo_cod
      AND codigo = pti_codigo
      AND tipo = pnu_tipo
      AND secuencia = pnu_secuencia;    
  END IF;

  COMMIT;
END;
/
CREATE PUBLIC SYNONYM sp_fdt_upd_rutas FOR ADAM.sp_fdt_upd_rutas;
GRANT EXECUTE ON sp_fdt_upd_rutas TO adama;
