Es gibt sogar "triviale" Fehler, die auch bei bester Syntaxprüfung nicht feststellbar sind.
Seit V7... wird jede Spalte, die nicht einer Tabelle zugeordnet werden kann, als globale SQL-Variable festgelegt.
Merken tut man das nur zur Laufzeit, da der SQL mit negativem SQL-Code (globale Variable nicht deklariert) zurückkommt.
Ich habe es mir daher angewöhnt, den ggf. generierten SQL-Spool auch bei korrekter Umwandlung genauer zu untersuchen.
Globale Variablen werden mit Fehlerbewertung 10 ausgewiesen, was nicht zum Abbruch der Umwandlung führt. Auf solche Dinge muss man ebenso achten.

Auch ein generelles Problem sind die praktischen "global tamporary table" (GTT), die einfach deklariert werden und in der QTEMP automatisch erstellt werden.
Allerdings Vorsicht bei der Verwendung von Transaktionen:
- GTT werden nicht journalisiert
- Commit / Rollback löschen den Inhalt einer GTT (warum auch immer)
Also alle Insert/Update/Delete auf GTT müssen immer mit "with nc" ergänzt werden, sonst klappts nicht.
Ich habe nicht näher untersucht, warum das so ist.

Zusätzlich wirft der SQL-Precompiler jede Menge 10-Warnungen bei der Verwendung von GTT aus, da er weder die Tabelle noch die Spalten findet.
Er stellt also keinen Zusammenhang zwischen einem "Declare GTT" und die Anwendungen der GTT her.
Also auch hier muss man prüfen, welche Variablen da nicht gefunden wurden, es könnte auch nur ein Tippfehler sein.