Frage:
In welcher Form liegen die alten SQLs vor?
Alle irgendwie einzeln?
In einer Textdatei und der Anwender sucht sie sich da raus?
Im Quelltext irgendeiner oder mehrere Anwendung(en)?
Bin in der Vergangenheit recht gut damit gefahren, die SQLs in 'ner Datenbanktabelle vorzuhalten.
Da kann man dann eine Spalte für die
MSSQL-Syntax machen, eine Spalte für die Oracle-Syntax u.s.w. für alle zu unterstützende Datenbanken.
Jede Zeile der Tabelle hat 'ne eindeutige ID.
Die Software, die die SQLs braucht, kennt dann nur noch diese ID und weiß um welche Datenbank es sich handelt.
Soll also ein
SQL ausgeführt werden, holt sie sich per ID und Info zur verwendenen Datenbank das passende
SQL aus der Tabelle, versorgt es ggfls. mit Parametern, und führt es aus.
Oder man macht für jede Datenbank 'ne View, die dann nur die ID und die
SQL-Spalte der entsprechenden Datenbank liefert. Dann muss die Software nur die ID wissen, gegen welches
DBMS sie dann läuft, ist für die Software "wurscht". Sie sieht nur, was sie konkret benötigt.
Oder man macht je
DBMS eine Tabelle und nutzt dann dort immer das datenbankspezifische Befüllscript.
Ist eigentlich recht pflegeleicht und wenn man das einmal in 'ner Anwendung drinne hat, muss die Anwendung bei Änderungen am
SQL nicht jedesmal angepasst werden.
Wird 'ne weitere Datenbank unterstützt, bekommt die Tabelle 'ne weitere Spalte und die Software kann dann die SQLs dort herholen.
Die Pflege der Tabelle kann man dann jemandem anvertrauen, der sich in der
SQL-Welt gut auskennt und weiß, wie man die einzelnen Datenbankspezialitäten am besten übersetzt bzw. wie man es hinbekommt, dass sich die SQLs zwischen den einzelnen Datenbanken nicht mehr so gravierend unterscheiden.
Im Idealfall ist das für die die SQLs nutzende Software absolut transparent.
Der erstmalige Aufbau eines derartigen Konzeptes kann schon ziemlich viel Arbeit sein, die sich aber in der Regel auch recht schnell amortisiert.