sql >> Database teknologi >  >> RDS >> PostgreSQL

Værktøj til at konvertere t-sql (SQL Server) lagret procedure til pgsql (postgre sql)

Det er svært at oversætte sprog. Du skal parse originalen (med al den mærkelige syntaks og vorter, den tillader ud over, hvad dokumentationen siger), bestemme, hvad navne betyder, opdage semantikken og oversætte til målsproget uden at miste de subtile detaljer.

Jeg ville blive overrasket, hvis du fandt en løsning til denne hyldevare. En del af problemet er, at der er et stort antal N af kildesprog (forværret af dialekter), og et stort antal mål M, hvilket kræver, at et bibliotek af NxM-oversættere ligger rundt omkring. Og hvis du venter et par måneder, flytter N og M begge. Et håb er at oversætte N sprog til et fælles universelt kernesprog og oversætte det til M mål, der nu kun kræver N+M... men ingen har fundet et virkelig universelt sprog, og hvis du venter et par måneder, N og M flytte alligevel.

Man kan overveje at bygge (eller få en anden til at bygge) en specifik oversætter til opgaven; dette er normalt uøkonomisk, i det mindste hvis du vil have det til at være pålideligt, fordi så meget af oversættermaskineriet (parsing, navneopløsning, mønstermatching/oversættelse, ...) har tendens til at blive genopbygget fra bunden.

Man kan amortisere omkostningerne til oversætterinfrastrukturen, hvis man er forsigtig, ved at bygge (en masse) fælles maskineri. Når du først gør det, er det nemmere at bygge en oversætter (stadig ikke let), og økonomien giver mere mening for individuelle sager. Du kan læse mere om denne tilgang på: Hvilken slags mønstre kunne jeg gennemtvinge koden for at gøre det nemmere at oversætte til et andet programmeringssprog?



  1. RDSdataService execute_statement returnerer (BadRequestException)

  2. MySQL LOAD DATA INFILE:virker, men uforudsigelig linjeterminator

  3. python 5x langsommere end perl mySql-forespørgsel

  4. Er det muligt at optimere forespørgslen ved at bruge EXISTS i stedet for IN-klausulen med DISTINCT