Ir para conteúdo
Fórum Script Brasil

Hassan

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Posts postados por Hassan

  1. Pessoal,

    um amigo desenvolveu uma rotina para executar no Oracle, mas preciso rodar no Postgree. Meu conhecimento em banco é pequeno. Estou tentando executar o script abaixo clicando em Schemas --> Function --> Create --> Function. Estou usando o Pgadim 4.

    Minhas dúvidas:

    1) Preciso definir o Return Type na aba Definition

    2) Se eu executar a rotina como está, aparece a mensagem ERROR: type "number" does not exist

                                                                                                               LINE 6: T1_ID_TRECHO NUMER (10);

    Segue a rotina:

    DECLARE
       T1_ID_TRECHO NUMBER(10);
       T1_ID_LOGRADOURO NUMBER(10);
       T2_ID_TRECHO NUMBER(10);
       T2_ID_LOGRADOURO NUMBER(10);

    BEGIN  

       LOOP
       
        SELECT T1.ID_TRECHO, T1.ID_LOGRADOURO, T2.ID_TRECHO, T2.ID_LOGRADOURO INTO T1_ID_TRECHO, T1_ID_LOGRADOURO, T2_ID_TRECHO, T2_ID_LOGRADOURO
        FROM SISTEMA_VIARIO.TRECHO T1, SISTEMA_VIARIO.TRECHO T2
        WHERE T1.ID_LOGRADOURO <> T2.ID_LOGRADOURO
        AND T1.NOLOG = T2.NOLOG
        AND T1.Tplog = T2.Tplog
        AND SDO_TOUCH(T1.GEOLOC,T2.GEOLOC) = 'TRUE'
        AND ROWNUM = 1 ;
       
        IF T1_ID_LOGRADOURO < T2_ID_LOGRADOURO
        THEN
           UPDATE SISTEMA_VIARIO.TRECHO
           SET ID_LOGRADOURO = T2_ID_LOGRADOURO
           WHERE ID_TRECHO = T1_ID_TRECHO ;
        ELSE
           UPDATE SISTEMA_VIARIO.TRECHO
           SET ID_LOGRADOURO = T1_ID_LOGRADOURO
           WHERE ID_TRECHO = T2_ID_TRECHO ;
        END IF;  
       
       END LOOP;
       
    EXCEPTION

       WHEN NO_DATA_FOUND THEN RETURN ;
       
    END;   

     

×
×
  • Criar Novo...