PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Tool zum Konvertieren von gespeicherten t-sql (SQL Server)-Prozeduren in pgsql (postgre sql)

Sprachen zu übersetzen ist schwierig. Sie müssen das Original analysieren (mit all der seltsamen Syntax und den Warzen, die es über das hinaus erlaubt, was die Dokumentation sagt), bestimmen, was Namen bedeuten, die Semantik entdecken und in die Zielsprache übersetzen, ohne die subtilen Details zu verlieren.

Ich wäre überrascht, wenn Sie eine Lösung für dieses Standardprodukt finden würden. Ein Teil des Problems besteht darin, dass es eine große Anzahl N von Ausgangssprachen (verschlimmert durch Dialekte) und eine große Anzahl von Zielsprachen M gibt, was eine Bibliothek von NxM-Übersetzern erfordert, die herumliegen. Und wenn Sie ein paar Monate warten, ziehen N und M beide um. Eine Hoffnung besteht darin, N Sprachen in eine gemeinsame universelle Kernsprache zu übersetzen und diese in M ​​Ziele zu übersetzen, was jetzt nur N + M erfordert ... aber niemand hat eine wirklich universelle Sprache gefunden, und wenn Sie ein paar Monate warten, N und M bewege dich trotzdem.

Man kann erwägen, einen bestimmten Übersetzer für die Aufgabe zu bauen (oder jemand anderen damit zu beauftragen); Dies ist normalerweise unwirtschaftlich, zumindest wenn Sie möchten, dass es zuverlässig ist, da ein Großteil der Übersetzungsmaschinerie (Parsing, Namensauflösung, Mustererkennung/-übersetzung, ...) dazu neigt, von Grund auf neu aufgebaut zu werden.

Wenn man vorsichtig ist, kann man die Kosten für die Übersetzerinfrastruktur amortisieren, indem man (viele) gemeinsam genutzte Maschinen baut. Sobald Sie das getan haben, ist das Erstellen eines Übersetzers einfacher (immer noch nicht einfach) und die Wirtschaftlichkeit für Einzelfälle sinnvoller. Weitere Informationen zu diesem Ansatz finden Sie unter: Welche Arten von Mustern könnte ich im Code erzwingen, um die Übersetzung in eine andere Programmiersprache zu vereinfachen?