Advertisement
Guest User

Untitled

a guest
Aug 21st, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 4.71 KB | None | 0 0
  1.   PROCEDURE SEARCH_GEST_BANDI_MISURE(
  2.       soggettoConcedenteVar       VARCHAR2,
  3.       codAiutoRNAVar              VARCHAR2,
  4.       idBandoVar                  NUMBER,
  5.       titoloMisuraVar             VARCHAR2,
  6.       titoloBandoVar              VARCHAR2,
  7.       aResultCode           OUT   VARCHAR2,
  8.       aResultMessage        OUT   VARCHAR2,
  9.       aResultGestoriDetail  OUT   TABLE_GEST_BAN_MIS_DETAIL  )
  10.   AS
  11.  
  12.   CURSOR c_gestori_misure
  13.   IS
  14.     SELECT nvl(pad.COD_UFF_GESTORE,pad.COD_UFF_AUTORE) AS id_ufficio, mis.COD_AIUTO_RNA, mis.TITOLO_MISURA, pa.DES_AMM
  15.     FROM MIS_MISURA_PADRE pad,
  16.     MIS_VW_MISURA_LAST_CONS_VERS mis,
  17.     BDA_AREA_ORGANIZZATIVA aoo,
  18.     BDA_PUBBLICA_AMMINISTRAZIONE pa,
  19.     BDA_UFFICIO_GESTORE ug  
  20.     WHERE pad.CAR_PADRE = mis.CAR_PADRE
  21.     AND nvl(pad.COD_UFF_GESTORE,pad.COD_UFF_AUTORE) = ug.ID_UG
  22.     AND ug.COD_AMM = aoo.COD_AMM
  23.     AND ug.COD_AOO = aoo.COD_AOO
  24.     AND aoo.COD_AMM = pa.COD_AMM
  25.     AND nvl(codAiutoRNAVar,mis.COD_AIUTO_RNA) = mis.COD_AIUTO_RNA
  26.     AND (' ' || LOWER(mis.TITOLO_MISURA) || ' ') LIKE ('%' || LOWER(nvl(titoloMisuraVar,mis.TITOLO_MISURA))  || '%')
  27.     --and nvl(soggettoConcedenteVar,pa.DES_AMM) = pa.DES_AMM
  28.     AND (' ' || LOWER(aoo.DES_AOO) || ' ') LIKE ('%' || LOWER(nvl(soggettoConcedenteVar,aoo.DES_AOO)) || '%')
  29.   ;
  30.  
  31.   CURSOR c_gestori_bandi
  32.   IS
  33.     SELECT ban.AUTORITA_GESTIONE AS id_ufficio, ban.ID_BANDO, ban.TITOLO, pa.DES_AMM
  34.     FROM BDA_BANDO ban,
  35.     BDA_AREA_ORGANIZZATIVA aoo,
  36.     BDA_PUBBLICA_AMMINISTRAZIONE pa,
  37.     BDA_UFFICIO_GESTORE ug,
  38.     MIS_MISURA_PADRE pad,
  39.     MIS_VW_MISURA_LAST_CONS_VERS mis
  40.     WHERE ban.AUTORITA_GESTIONE = ug.ID_UG
  41.     AND FLAG_CANCELLATO != 'SI'
  42.     AND mis.CAR_PADRE = pad.CAR_PADRE
  43.     AND ban.COD_AIUTO_RNA = pad.CAR_PADRE
  44.     AND ug.COD_AMM = aoo.COD_AMM
  45.     AND ug.COD_AOO = aoo.COD_AOO
  46.     AND aoo.COD_AMM = pa.COD_AMM
  47.     AND nvl(idBandoVar,ban.ID_BANDO) = ban.ID_BANDO
  48.     AND (' ' || LOWER(ban.TITOLO) || ' ') LIKE ('%' || LOWER(nvl(titoloBandoVar, ban.TITOLO)) || '%')
  49.     --and nvl(soggettoConcedenteVar,pa.DES_AMM) = pa.DES_AMM
  50.     AND (' ' || LOWER(aoo.DES_AOO) || ' ') LIKE ('%' || LOWER(nvl(soggettoConcedenteVar,aoo.DES_AOO)) || '%')
  51.     AND nvl(codAiutoRNAVar,mis.COD_AIUTO_RNA) = mis.COD_AIUTO_RNA
  52.     AND (' ' || LOWER(mis.TITOLO_MISURA) || ' ') LIKE ('%' || LOWER(nvl(titoloMisuraVar,mis.TITOLO_MISURA)) || '%')
  53.   ;
  54.  
  55.    CURSOR c_output_detail (idUffGestList TABLE_NUMBER)
  56.    IS
  57.    SELECT DISTINCT DENOMINAZIONE_ENTE, LINK_URL_TRASPARENZA FROM BDA_VW_TRASPARENZA_GESTORI WHERE ID_UG IN (SELECT column_value FROM TABLE(idUffGestList))
  58.    ORDER BY LOWER(DENOMINAZIONE_ENTE)
  59.    ;
  60.  
  61.   aCounter NUMBER;
  62.   aResultIdUffGestList TABLE_NUMBER;
  63.   aGestoreDetail GEST_BAN_MIS_DETAIL;
  64.  
  65.   BEGIN
  66.       BEGIN
  67.         aCounter       := 0;
  68.         aResultIdUffGestList := TABLE_NUMBER();
  69.         aResultCode    :='0';
  70.         aResultMessage :='OK';
  71.         aResultGestoriDetail := TABLE_GEST_BAN_MIS_DETAIL();
  72.         FOR g_misura IN c_gestori_misure
  73.         LOOP
  74.           aResultIdUffGestList.EXTEND;
  75.           aCounter                 := aCounter+1;
  76.           aResultIdUffGestList(aCounter) := g_misura.id_ufficio;
  77.           DBMS_OUTPUT.PUT_LINE('Gestore Misura id_ufficio ' || aResultIdUffGestList(aCounter));
  78.         END LOOP;
  79.         DBMS_OUTPUT.PUT_LINE('aResultIdUffGestList size ' || aResultIdUffGestList.COUNT);
  80.        
  81.         FOR g_bando IN c_gestori_bandi
  82.         LOOP
  83.           aResultIdUffGestList.EXTEND;
  84.           aCounter                 := aCounter+1;
  85.           aResultIdUffGestList(aCounter) := g_bando.id_ufficio;
  86.           DBMS_OUTPUT.PUT_LINE('Gestore Bando id_ufficio ' || aResultIdUffGestList(aCounter));
  87.         END LOOP;
  88.         DBMS_OUTPUT.PUT_LINE('aResultIdUffGestList size ' || aResultIdUffGestList.COUNT);
  89.        
  90.         aResultIdUffGestList:=SET(aResultIdUffGestList);
  91.  
  92.  
  93.         aCounter:=0;
  94.         FOR od IN c_output_detail (aResultIdUffGestList)
  95.         LOOP
  96.           aResultGestoriDetail.EXTEND;
  97.           aCounter                := aCounter+1;
  98.           aGestoreDetail       := GEST_BAN_MIS_DETAIL(od.DENOMINAZIONE_ENTE,od.LINK_URL_TRASPARENZA);
  99.           aResultGestoriDetail(aCounter)   := aGestoreDetail;
  100.           DBMS_OUTPUT.PUT_LINE('Output: DENOMINAZIONE_ENTE' || od.DENOMINAZIONE_ENTE || ' ID_COMPONENTE_AIUTO ' || od.LINK_URL_TRASPARENZA);
  101.         END LOOP;
  102.        
  103.       EXCEPTION
  104.       WHEN OTHERS THEN
  105.         ROLLBACK;
  106.         aResultCode    := '100';
  107.         aResultMessage := '[BDA_SEARCH_ENGINE.SEARCH_GEST_BANDI_MISURE]' || SQLERRM || ' - ' ||DBMS_UTILITY.FORMAT_ERROR_BACKTRACE;
  108.       END;
  109.       IF aResultMessage IS NULL THEN
  110.         aResultCode     := '0';
  111.         aResultMessage  := 'OK';
  112.       END IF;
  113.     END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement