CREATE OR REPLACE PROCEDURE sp_fco_del_reportes_tablas
(
  psi_id_rep  number,
  pvc_usuario varchar2,
  pti_cod_rep number
)
/********************************************************************/
/*** Fiscal de Colombia de Data Tecnologia                        ***/
/*** Descripcion: invoca los procedimientos de reportes de        ***/
/*** acuerdo a los parametros enviados de entrada                 ***/
/*** Autor:	Diana Cecilia Rios Peinado                            ***/
/*** Fecha:	Mayo 14 de 2005                                      ***/
/********************************************************************/

AS
	vvc_proc_genera	varchar2(30);
  sComilla char(1);
  vvc_inter	varchar2(10);  
  vnu_len       number(7);
  vvc_ssql  varchar2(2000);
  ejecutar_sp   EXCEPTION;
    
BEGIN

  sComilla := chr(39);
	--trayendo el nombre del procedimiento
  vvc_proc_genera := '';
  vnu_len := 0;
  BEGIN 
  	SELECT proc_borrado
    INTO vvc_proc_genera
  	FROM fco_reportes
  	WHERE cod_rep = pti_cod_rep;
    EXCEPTION
      WHEN NO_DATA_FOUND THEN vvc_proc_genera := '0';
      WHEN OTHERS THEN vvc_proc_genera := '';            
  END;  
	vvc_proc_genera := LTRIM(RTRIM(NVL(vvc_proc_genera,'')));
  vnu_len := NVL(LENGTH(vvc_proc_genera),0);

/*
	IF vnu_len = 0 THEN
		vvc_inter := LTRIM(RTRIM(pti_cod_rep));
    RAISE_APPLICATION_ERROR(-20001, 'Error de datos: No existe la funcion de borrado de tablas para el reporte: '||vvc_inter);
    RETURN; 
	END IF;
*/
--si existe un procedimiento, entonces se ejecuta
	IF vnu_len > 0 THEN  
    vvc_ssql := vvc_proc_genera || ' ' || '(' || RTRIM(psi_id_rep) || ',' ||
                sComilla || pvc_usuario || sComilla || ',' || RTRIM(pti_cod_rep) || ');';
                              
    BEGIN
  DBMS_OUTPUT.PUT_LINE('2 - vvc_ssql: '||vvc_ssql);
        EXECUTE IMMEDIATE 'BEGIN '||vvc_ssql||' END;';
    EXCEPTION
        WHEN OTHERS THEN
            RAISE ejecutar_sp;
    END;
  END IF;

  COMMIT;

  EXCEPTION
  WHEN ejecutar_sp THEN
       RAISE_APPLICATION_ERROR(-20001, 'Error al ejecutar el procedimiento de borrado de tablas: '||vvc_inter);
       RETURN;                    
  WHEN OTHERS THEN
           RAISE_APPLICATION_ERROR(-20002, SQLCODE||SQLERRM(SQLCODE));
           RETURN;  

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