sql >> Database >  >> RDS >> PostgreSQL

Tool om t-sql (SQL Server) opgeslagen procedure te converteren naar pgsql (postgre sql)

Talen vertalen is moeilijk. Je moet het origineel ontleden (met alle vreemde syntaxis en wratten die het toelaat boven en buiten wat de documentatie zegt), bepalen wat namen betekenen, de semantiek ontdekken en vertalen naar de doeltaal zonder de subtiele details te verliezen.

Het zou me verbazen als je hier een kant-en-klare oplossing voor zou vinden. Een deel van het probleem is dat er een groot aantal N brontalen is (verergerd door dialecten), en een groot aantal doelen M, waardoor een bibliotheek met NxM-vertalers moet rondslingeren. En als je een paar maanden wacht, verhuizen N en M allebei. Eén hoop is om N-talen te vertalen naar een gemeenschappelijke universele kerntaal, en dat te vertalen naar M-doelen, waarvoor nu alleen N+M nodig is... maar niemand heeft een echt universele taal gevonden, en als je een paar maanden wacht, N en M toch bewegen.

Men kan overwegen een specifieke vertaler voor de taak te bouwen (of iemand anders te laten bouwen); dit is meestal oneconomisch, tenminste als je wilt dat het betrouwbaar is, omdat zoveel van de vertaalmachines (parsing, naamresolutie, patroonovereenkomst/vertaling, ...) de neiging hebben om helemaal opnieuw te worden opgebouwd.

Als je voorzichtig bent, kun je de kosten van de vertaalinfrastructuur terugverdienen door (veel) gedeelde machines te bouwen. Als je dat eenmaal hebt gedaan, is het bouwen van een vertaler eenvoudiger (nog steeds niet gemakkelijk) en is de economie logischer voor individuele gevallen. U kunt meer over deze aanpak lezen op: Wat voor soort patronen kan ik in de code afdwingen om het vertalen naar een andere programmeertaal gemakkelijker te maken?



  1. MySQL - Hoe kan ik een tabel bijwerken met waarden uit een andere tabel?

  2. Waarom zou SqlServer select statement rijen selecteren die overeenkomen en rijen die overeenkomen en volgspaties hebben?

  3. Oracle:Waarom ik niet op ROWNUM kan vertrouwen in een verwijderclausule?

  4. Oracle Leeftijdsberekening vanaf geboortedatum en vandaag