Advertisement
Guest User

Untitled

a guest
Aug 2nd, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.15 KB | None | 0 0
  1. DECLARE
  2. codigo4 VARCHAR2(4);
  3. codigo3 VARCHAR2(4);
  4. id_con_freguesia NUMBER;
  5. local_freguesia NUMBER;
  6. local_codigo4 VARCHAR2(4);
  7. local_codigo3 VARCHAR2(4);
  8. s_num NUMBER;
  9. BEGIN
  10. s_num :=0;
  11. FOR i IN (SELECT f2.id_contato, f2.cod_postal, f2.id_freguesia FROM gen_contato f2 WHERE id_freguesia IS NULL) LOOP
  12.     BEGIN
  13.     SELECT id_contato, SUBSTR(cod_postal,1,4), SUBSTR(cod_postal,6,3) INTO id_con_freguesia, codigo4, codigo3 FROM gen_contato WHERE id_contato = i.id_contato;
  14.  
  15.             FOR j IN (SELECT f1.codigo_postal_4, f1.codigo_postal_3, f1.id_freguesia INTO local_codigo4,local_codigo3,local_freguesia FROM gen_localidade f1 WHERE local_codigo4 = codigo4 AND local_codigo3 = codigo3) LOOP
  16.                 BEGIN
  17.                     s_num := s_num +1;
  18.          
  19.                    
  20.                     EXCEPTION WHEN OTHERS
  21.                         THEN NULL;
  22.                 END;
  23.             END LOOP;
  24.  
  25.             IF s_num = 1
  26.             THEN
  27.                 UPDATE gen_contato SET id_freguesia = local_freguesia,
  28.                     updated_by = 'luis.macedo',
  29.                     update_date = SYSDATE
  30.                 WHERE id_contato = id_con_freguesia AND cod_postal = codigo4||'-'||codigo3;
  31.            
  32.             END IF;
  33.         s_num := 0;
  34.  
  35.         EXCEPTION WHEN OTHERS
  36.             THEN NULL;
  37.     END;
  38. END LOOP;
  39.  
  40. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement