Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda PGSQL


Hassan

Pergunta

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 para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 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.

 

Editado por atf
Erros gramaticais
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...