Eine umfangreiche Anwendung sollte statt der bisher verwendeten Oracle-Datenbank eine Postgres-Datenbank verwenden.
Dies musste geschehen, ohne dass die bisher im Code eingebetteten SQL-Statements verändert werden müssen.
Da sich aber die SQL-Dialekte PL/SQL und PostgreSQL in vielen Punkten unterscheiden, musste ein Konverter erstellt werden, der diese Statements "on the fly" an einer zentralen Stelle konvertiert.
Ich habe dies so gelöst, dass die PL/SQL-Statements mit dem Parser Generator ANTLR (ANother Tool for Language Recognition) geparst und in einen abstrakten Objekt-Baum zerlegt werden.
Daraus wird dann in umgekehrter Vorgehensweise das entsprechende PostgreSQL Statement generiert.
Techniken: ANTLR, Visual Studio, .NET, C#, Oracle PL/SQL, PostgreSQL, GIT