PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

PostgreSQL vs Oracle:verificação em tempo de compilação de PL/pgSQL


Sim, este é um problema conhecido.

PL/pgSQL (como qualquer outra função, exceto em SQL ) é uma “caixa preta” para o PostgreSQL, portanto não é realmente possível detectar erros exceto em tempo de execução.

Você pode fazer várias coisas:
  1. agrupe sua função chamando SQL consultas em BEGIN / COMMIT instruções para ter um melhor controle sobre os erros;
  2. adicione EXCEPTION blocos ao seu código para detectar e rastrear erros. Observe, porém, que isso afetará o desempenho da função;
  3. use plpgsql_check extensão , desenvolvido por Pavel Stěhule, que é um dos principais contribuidores para o desenvolvimento do PL/pgSQL. Suponho que, eventualmente, essa extensão chegará ao núcleo do PostgreSQL, mas levará algum tempo (agora estamos no estado 9.4beta3);
  4. Você também pode analisar esta pergunta relacionada:verificação de sintaxe postgresql sem executar a consulta

E realmente parece que você está precisando muito de uma estrutura de teste de unidade.