Jump to content
Fórum Script Brasil
  • 0

Ajuda PGSQL


Question

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;   

 

Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

As rotinas, no Postgres, precisam do tipo de dado retornado e, dependendo da categoria da rotina, existem limitações de tipo.

A sintaxe das linguagens de "script" não é exatamente igual nos dois bancos de dados.

Recomendo uma lida no capítulo  plgpsql do manual do Postgres. A adaptação não será muito complicada.

 

Edited by atf
Erros gramaticais
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148681
    • Total Posts
      644509
×
×
  • Create New...