Advertisement
Guest User

Untitled

a guest
Oct 3rd, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 2.91 KB | None | 0 0
  1. --QUERY punto 7
  2.  
  3. DECLARE
  4.   p_in_num_sx  VARCHAR2(20) := NULL; --'120000001';
  5.   p_in_id_sx   NUMBER := NULL; --100721772;
  6.   p_in_id_end  NUMBER := NULL; --100939726;
  7.   p_in_id_inc  NUMBER := NULL; --101003737;
  8.   p_in_id_pag  NUMBER := 101231665;
  9.   p_in_tipoogg_result NUMBER := 1; -- puoi avere valori fino ad 8, vedi la tabella tb_tipo_oggetto_business
  10.   p_out_n_pol  VARCHAR2(20) := '';
  11.   p_out_n_sx   VARCHAR2(20) := '';
  12.   p_out_id_end VARCHAR2(20) := '';
  13.   p_out_id_inc VARCHAR2(20) := '';
  14. BEGIN
  15.  
  16.   IF (p_in_num_sx IS NOT NULL OR p_in_id_sx IS NOT NULL) THEN
  17.     --Recupero POL, SX da ID_SX o NUM_SX
  18.     SELECT DISTINCT pz.pol_n_polizza, s.sin_n_sinistro
  19.       INTO p_out_n_pol, p_out_n_sx
  20.       FROM sin_sinistri s
  21.       join pol_polizze pz
  22.         ON pz.pol_sin_sinistro_id = s.sin_sinistro_id
  23.      WHERE 1 = 1
  24.        AND ((p_in_num_sx IS NOT NULL AND s.sin_n_sinistro = p_in_num_sx) OR
  25.            (p_in_id_sx IS NOT NULL AND s.sin_sinistro_id = p_in_id_sx));
  26.  
  27.   ELSIF (p_in_id_end IS NOT NULL) THEN
  28.     --Recupero POL, SX, END da END_ID
  29.     SELECT DISTINCT pz.pol_n_polizza,
  30.                     s.sin_n_sinistro,
  31.                     TO_CHAR(e.end_en_dan_id)
  32.       INTO p_out_n_pol, p_out_n_sx, p_out_id_end
  33.       FROM sin_sinistri s
  34.       join pol_polizze pz
  35.         ON pz.pol_sin_sinistro_id = s.sin_sinistro_id
  36.       join end_entita_danneggiate e
  37.         ON e.end_sin_sinistro_id = s.sin_sinistro_id
  38.      WHERE e.end_en_dan_id = p_in_id_end;
  39.  
  40.   ELSIF (p_in_id_inc IS NOT NULL) THEN
  41.     --Recupero POL,SX,END,INC da INC_ID
  42.     SELECT DISTINCT pz.pol_n_polizza,
  43.                     s.sin_n_sinistro,
  44.                     TO_CHAR(e.end_en_dan_id),
  45.                     TO_CHAR(i.per_perizie_id)
  46.       INTO p_out_n_pol, p_out_n_sx, p_out_id_end, p_out_id_inc
  47.       FROM sin_sinistri s
  48.       join pol_polizze pz
  49.         ON pz.pol_sin_sinistro_id = s.sin_sinistro_id
  50.       left outer join end_entita_danneggiate e
  51.         ON e.end_sin_sinistro_id = s.sin_sinistro_id
  52.       left outer join per_perizie i
  53.         ON i.per_end_en_dan_id = e.end_en_dan_id
  54.      WHERE i.per_perizie_id = p_in_id_inc;
  55.  
  56.   ELSIF (p_in_id_pag IS NOT NULL) THEN
  57.     --Recupero POL,SX,END da PAG_ID
  58.     SELECT DISTINCT pz.pol_n_polizza,
  59.                     s.sin_n_sinistro,
  60.                     TO_CHAR(e.end_en_dan_id)
  61.       INTO p_out_n_pol, p_out_n_sx, p_out_id_end
  62.       FROM sin_sinistri s
  63.       join pol_polizze pz
  64.         ON pz.pol_sin_sinistro_id = s.sin_sinistro_id
  65.       join end_entita_danneggiate e
  66.         ON e.end_sin_sinistro_id = s.sin_sinistro_id
  67.       join pag_pagamenti p
  68.         ON p.pag_end_en_dan_id = e.end_en_dan_id
  69.      WHERE p.pag_pagamento_id = p_in_id_pag;
  70.  
  71.   END IF;
  72.  
  73.   --
  74.  
  75.   DBMS_OUTPUT.put_line(p_out_n_pol);
  76.   DBMS_OUTPUT.put_line(p_out_n_sx);
  77.   DBMS_OUTPUT.put_line(p_out_id_end);
  78.   DBMS_OUTPUT.put_line(p_out_id_inc);
  79.  
  80.   RETURN 0;
  81.  
  82. EXCEPTION
  83.   WHEN OTHERS THEN
  84.     RETURN -1;
  85.  
  86. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement