[postgresql-it] sorry

  • From: "riccardo.catelli@xxxxxxxxx" <riccardo.catelli@xxxxxxxxx>
  • To: postgresql-it@xxxxxxxxxxxxx
  • Date: Tue, 6 Jun 2017 17:48:35 +0200 (CEST)

scusate questo è il codice corretto e mi ritorna ....,....---il nulla
CREATE OR REPLACE FUNCTION 
pck_gestione_tracce_sistema.p_get_rotta_traccia_sistema6(    IN 
in_id_traccia_sistema numeric,    IN in_id_versione numeric,    IN 
in_limite_inferiore numeric,    IN in_limite_superiore numeric,    IN 
id_limite_inferiore_data date,    IN id_limite_superiore_data date,    IN 
in_id_viaggio numeric,    OUT on_out_total_count numeric,    OUT 
oc_out_recordset character varying)  RETURNS record AS$BODY$DECLARE   
LD_LIMITE_INFERIORE_DATA Date ;   LD_LIMITE_SUPERIORE_DATA Date ;   
LK_PACKAGE_NAME varchar(1000);   LK_FUNCTION_NAME varchar(1000);   
LN_DEBUG_INFO Integer;      --ref refcursor;   --ref1 refcursor;   ref 
refcursor;   ref1 refcursor;
Begin  
      LN_DEBUG_INFO := 1;   LK_PACKAGE_NAME := 'PCK_GESTIONE_DATI';   
LK_FUNCTION_NAME := 'P_GET_ROTTA_TRACCIA_SISTEMA';   LD_LIMITE_INFERIORE_DATA  
:= TO_DATE(TO_CHAR(ID_LIMITE_INFERIORE_DATA,'DD/MM/YYYY 
HH24:MI:SS'),'DD/MM/YYYY HH24:MI:SS');   LD_LIMITE_SUPERIORE_DATA  := 
TO_DATE(TO_CHAR(ID_LIMITE_SUPERIORE_DATA,'DD/MM/YYYY HH24:MI:SS'),'DD/MM/YYYY 
HH24:MI:SS');
    If (LN_DEBUG_INFO = 1) Then      PERFORM nereus.p_logging(IN_TIPO        => 
'I'::character varying,                IN_CODICE      => 'INFO'::character 
varying,                IN_DESCRIZIONE => 'Input call'::character varying,      
          IN_MODULO      => LK_PACKAGE_NAME::character varying, 
--LK_PACKAGE_NAME,                IN_FUNZIONE    => LK_FUNCTION_NAME::character 
varying, --LK_FUNCTION_NAME,                IN_NOTE        => 'ID_TRACK: ' || 
IN_ID_TRACCIA_SISTEMA || ' VERS: ' || IN_ID_VERSIONE || ' LIM_INF: ' || 
IN_LIMITE_INFERIORE || ' LIM_SUP: ' || IN_LIMITE_SUPERIORE || ' DATA_INF:' ||   
                                               
TO_CHAR(ID_LIMITE_INFERIORE_DATA,'DD/MM/YYYY HH24:MI:SS') || ' DATA_SUP: ' || 
TO_CHAR(ID_LIMITE_SUPERIORE_DATA, 'DD/MM/YYYY HH24:MI:SS') || ' ID_VIAGGIO: ' 
|| IN_ID_VIAGGIO,                           IN_USER_ID     => '0');    End If;  
              IF (IN_ID_VIAGGIO Is Not Null) Then   Open ref FOR Select 
Count(*)                            into on_out_total_count                     
    From (Select T.*,                                       LAG(T.LATITUDINE) 
OVER(Order By T.VERSIONE Asc) LAT_PREV,                                       
LAG(T.LONGITUDINE) OVER(Order By T.VERSIONE Asc) LON_PREV                       
              From nereus.STORICO_TRACCE_SISTEMA T                              
      Where T.ID_TRACCIA_SISTEMA = IN_ID_TRACCIA_SISTEMA                        
              And T.VERSIONE < IN_ID_VERSIONE                                 
And T.LATITUDINE Is Not Null                                    And 
T.LONGITUDINE Is Not Null                                   And 
T.ID_VIAGGIO_IN_CORSO = IN_ID_VIAGGIO                               And 
T.DATA_AGGIORNAMENTO Between LD_LIMITE_INFERIORE_DATA And 
LD_LIMITE_SUPERIORE_DATA) Z                         Where ((LAT_PREV Is Not 
Null And Z.LATITUDINE <> LAT_PREV) Or (LON_PREV Is Not Null And Z.LONGITUDINE 
<> LON_PREV))                             Or (LAT_PREV Is Null And LON_PREV Is 
Null);         on_out_total_count:=ref::numeric;         
RETURN;--on_out_total_count;
         Open ref1 FOR SELECT *                        into oc_out_recordset    
                   FROM                     (Select *                        
From (Select Q.*, row_number() OVER (ORDER BY Q.VERSIONE) AS RNUM               
              From (Select Z.*                                      From ( 
Select T.*,                                                     
LAG(T.LATITUDINE) OVER(Order By T.VERSIONE Asc) LAT_PREV,                       
                                LAG(T.LONGITUDINE) OVER(Order By T.VERSIONE 
Asc) LON_PREV                                               From 
nereus.STORICO_TRACCE_SISTEMA T                                            
Where T.ID_TRACCIA_SISTEMA = IN_ID_TRACCIA_SISTEMA --30001--                    
                        And T.VERSIONE < IN_ID_VERSIONE --3--3--4--5 --         
                                And T.LATITUDINE Is Not Null                    
                        And T.LONGITUDINE Is Not Null                           
                And T.ID_VIAGGIO_IN_CORSO = IN_ID_VIAGGIO --2 --                
                                And T.DATA_AGGIORNAMENTO Between 
LD_LIMITE_INFERIORE_DATA  And LD_LIMITE_SUPERIORE_DATA                          
                       Order By T.VERSIONE Desc) Z                              
           Where ((LAT_PREV Is Not Null And Z.LATITUDINE <> LAT_PREV) Or 
(LON_PREV Is Not Null And Z.LONGITUDINE <> LON_PREV))                           
             Or (LAT_PREV Is Null And LON_PREV Is Null)) Q                      
            ) X                             Where RNUM <= IN_LIMITE_SUPERIORE + 
ID_LIMITE_SUPERIORE_DATA ) Y                                  Where RNUM > 
IN_LIMITE_SUPERIORE;                      RETURN ;--1; --oc_out_recordset ;     
End If;          Exception    When Others Then      PERFORM 
nereus.P_LOGGING(IN_TIPO        => 'E'::character varying,                
IN_CODICE      => Sqlstate::character varying,                IN_DESCRIZIONE => 
Sqlerrm::character varying,                IN_MODULO      => 
LK_PACKAGE_NAME::character varying,--LK_PACKAGE_NAME,                
IN_FUNZIONE    => LK_FUNCTION_NAME::character varying,--LK_FUNCTION_NAME,       
         IN_NOTE        => 'ID_TRACK: ' || IN_ID_TRACCIA_SISTEMA || ' VERS: ' 
|| IN_ID_VERSIONE || ' LIM_INF: ' || IN_LIMITE_INFERIORE || ' LIM_SUP: ' || 
IN_LIMITE_SUPERIORE || ' DATA_INF:' ||                             
TO_CHAR(ID_LIMITE_INFERIORE_DATA, 'DD/MM/YYYY HH24:MI:SS') || ' DATA_SUP: ' || 
TO_CHAR(ID_LIMITE_SUPERIORE_DATA,'DD/MM/YYYY HH24:MI:SS') || ' ID_VIAGGIO: ' || 
IN_ID_VIAGGIO::character varying,              IN_USER_ID     => '0'::character 
varying);      --ON_OUT_TOTAL_COUNT := -1;      End $BODY$  LANGUAGE plpgsql 
VOLATILE  COST 100;ALTER FUNCTION 
pck_gestione_tracce_sistema.p_get_rotta_traccia_sistema6(numeric, numeric, 
numeric, numeric, date, date, numeric)  OWNER TO postgres;


Other related posts:

  • » [postgresql-it] sorry - riccardo.catelli@xxxxxxxxx