Logo

Depuração em PSQL

Técnicas avançadas para identificar bugs em Stored Procedures e Triggers.

Introdução ao Debug em Banco de Dados

Diferente de uma IDE de programação, o Firebird executa o código PSQL dentro do motor. Quando algo falha, muitas vezes recebemos apenas um código de erro genérico. Para debugar com eficiência, utilizamos três estratégias principais.

1. Técnica de Log de Eventos (Tabela de Log)

Esta é a técnica mais robusta. Criamos uma tabela autônoma para registar o estado das variáveis em pontos críticos do código.

-- Exemplo de inserção de log dentro de uma Procedure
BEGIN
  /* ... código complexo ... */
  INSERT INTO LOG_DEBUG (PASSO, VALOR_VAR)
  VALUES ('Cálculo do ICMS', :v_valor_calculado);
  /* ... continua ... */
END

2. Utilização de Exceções Personalizadas

Podemos "forçar" uma paragem no código para inspecionar um valor através do comando EXCEPTION. É o equivalente ao ShowMessage para debug rápido.

-- Interrompe a execução e exibe o valor da variável na mensagem de erro
IF (v_debug_ativo = 1) THEN
    EXCEPTION EX_DEBUG_ERRO 'O valor atual é: ' || CAST(:v_total AS VARCHAR(20));

3. RDP (Remote Debugger Protocol)

Para depuração em tempo real, utilizamos ferramentas de terceiros que se acoplam ao processo do Firebird, como o FBDebugger ou ferramentas integradas em IDEs como IBExpert ou Database Workbench. Estas ferramentas permitem:

Conclusão

Depurar PSQL exige uma abordagem metódica. Para ambientes de produção, a instrumentação via tabelas de log é a única forma segura de entender o comportamento do código sem interromper a operação dos utilizadores.

← Voltar para Índice Firebird