Jag skrev nyligen upp ett verktyg för att statiskt kontrollera syntaxen för SQL för PostgreSQL. Den använder ecpg, den inbäddade SQL C-förberedaren för postgres, för att kontrollera SQL-syntaxen, så den använder exakt samma parser som är inbyggd i Postgres själv.
Du kan kolla in det på github:http://github.com/markdrago/pgsanity . Du kan ge README en skimning för att få en bättre uppfattning om hur det fungerar och för att få anvisningar för hur man installerar det. Här är ett kort exempel på hur pgsanity kan användas:
$ pgsanity good1.sql good2.sql bad.sql
bad.sql: line 1: ERROR: syntax error at or near "bogus_token"
$ find -name '*.sql' | xargs pgsanity
./sql/bad1.sql: line 59: ERROR: syntax error at or near ";"
./sql/bad2.sql: line 41: ERROR: syntax error at or near "insert"
./sql/bad3.sql: line 57: ERROR: syntax error at or near "update"