sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL vs Oracle:controle tijdens compileren van PL/pgSQL

Ja, dit is een bekend probleem.

PL/pgSQL (zoals elke andere functie, behalve op SQL ) is een "zwarte doos" voor de PostgreSQL, daarom is het niet echt mogelijk om fouten te detecteren, behalve tijdens runtime.

Je kunt verschillende dingen doen:

  1. wrap je functie die SQL aanroept zoekopdrachten in BEGIN / COMMIT verklaringen om een ​​betere controle over fouten te hebben;
  2. add EXCEPTION blokken aan uw code om fouten op te sporen en op te sporen. Houd er echter rekening mee dat dit de prestatie van de functie beïnvloedt;
  3. gebruik plpgsql_check extensie , ontwikkeld door Pavel Stěhule, die een van de belangrijkste bijdragers is aan de ontwikkeling van PL/pgSQL. Ik veronderstel dat deze extensie uiteindelijk de kern van PostgreSQL zal bereiken, maar het zal even duren (nu zijn we in de staat 9.4beta3);
  4. Je zou ook deze gerelateerde vraag kunnen bekijken:postgresql-syntaxiscontrole zonder de query uit te voeren

En het lijkt er echt op dat je een enorm raamwerk voor het testen van eenheden nodig hebt.



  1. Geheugenlek in JDBC4Connection

  2. Geneste joins in Codeigniter

  3. PLS-00103 een externe tabel maken met dynamische SQL

  4. Veldnamen ophalen uit tijdelijke tabel (SQL Server 2008)