Microsoft T-SQL om Oracle PL / SQL-vertaling

stemmen
19

Ik heb gewerkt met T-SQL voor de komende jaren, maar ik heb net verhuisd naar een organisatie die gaat om te eisen schrijven van een aantal Oracle stuff, waarschijnlijk gewoon eenvoudige CRUD operaties in ieder geval totdat ik mijn voeten. Ik ben niet van plan om te migreren databases van de ene naar de andere gewoon interactie met bestaande Oracle-databases vanuit een Application Development perspectief. Is er gereedschap of hulpprogramma beschikbaar om gemakkelijk te vertalen T-SQL in PL / SQL, een zoekwoord mapper is het soort ding dat ik ben op zoek naar.

PS Ik ben te lui om RTFM, behalve dat het niet gaat om een ​​groot deel van mijn rol, dus ik iets om me op te staan ​​om een ​​beetje sneller te versnellen wil gewoon.

De vraag is gesteld op 03/09/2008 om 15:25
bron van user
In andere talen...                            


12 antwoorden

stemmen
1

Het is niet triviaal om hen heen en weer in kaart, dus ik betwijfel of er is een tool die automatisch doet. Maar deze link kan u verder helpen: http://vyaskn.tripod.com/oracle_sql_server_differences_equivalents.htm

antwoordde op 03/09/2008 om 15:32
bron van user

stemmen
2

De belangrijkste verschillen voor gewoon T-SQL zijn:

  • NVL vervangt ISNULL
  • SYSDATE vervangt GETDATE ()
  • CONVERT wordt niet ondersteund
  • moet Identity kolommen worden vervangen door sequenties <- niet technisch T- of PL / maar gewoon SQL

Notitie. Ik neem aan dat je niet de verouderde SQL Server * = syntaxis voor joins

@jodonell: De tabel verwijzen naar een beetje verouderd, Oracle enigszins meer normen voldoet na 9i ondersteunende zaken als CASE en ANSI outer joins worden

antwoordde op 03/09/2008 om 15:52
bron van user

stemmen
2

Als u uw ISNULL en NVL nonsense met COALESCE vervangen, zal het werk in T-SQL en PL / SQL!

antwoordde op 05/09/2008 om 15:27
bron van user

stemmen
18

Het verschil taal vermeld dusver zijn onbeduidend in vergelijking met de logische verschillen. Iedereen kan opzoeken NVL. Wat is moeilijk te opzoeken is

DDL

In SQL server manipuleren uw schema, altijd en overal, met weinig of geen gedoe.

In Oracle, houden wij niet van DDL in opgeslagen procedures, dus je moet springen door hoepels. Je moet gebruiken EXECUTE IMMEDIATE op om een ​​DDL functie uit te voeren.

Temp Tables

IN SQL Server als de logica wordt een beetje hard, de normaalste zaak is om de sql snelkoppeling en hebben besloten om een ​​tijdelijke tabel en dan de volgende stap wordt gedaan met behulp van die tijdelijke tabel. MSSS maakt het zeer eenvoudig om dit te doen.

In Oracle houden wij niet van dat. Door het forceren van een tussentijds resultaat je helemaal voorkomen dat de Optimizer van het vinden van een snelkoppeling voor u. Maar als je halverwege moet stoppen en aanhouden van de tussentijdse resultaten van Oracle wil dat je naar de tijdelijke tabel te maken op voorhand, niet on the fly.

sloten

In MSSS je je zorgen maakt over het vergrendelen, moet je nolock tips toe te passen op DML, moet je lock escalatie om de telling van de sluizen te verminderen.

In Oracle hebben we geen zorgen te maken over deze op die manier.

Lees gepleegd

Tot voor kort MSSS niet volledig behandelen Lees Committed isolatie, zodat u zich zorgen over vuile leest.

Oracle heeft op die manier al decennia lang.

enz

MSSS heeft geen concept van Bitmap indexen, IOT, Table Clusters, Single Table hash clusters, niet-unieke indexen afdwingen unieke beperkingen ....

antwoordde op 11/03/2009 om 22:53
bron van user

stemmen
0

Als je doet een eenmalige conversie, in plaats van te proberen om twee versies te ondersteunen, moet je kijkt naar Oracle Migration Workbench . Deze tool werkt met Oracle's SQLDeveloper (die je echt moet hebben als je werkt met Oracle). Dit betekent een conversie van het schema, data, en enkele van de T-SQL naar PL / SQL. Weten beide goed, ik vond het wel ongeveer 80% job. Goed genoeg om het de moeite waard te maken, terwijl het grootste deel van procedures om te zetten, en met de hand te zetten de rest "hardere" onbekende delen.

antwoordde op 11/03/2009 om 22:56
bron van user

stemmen
0

Niet goedkoop ($ 995), maar deze tool werkt geweldig: http://www.swissql.com/products/sql-translator/sql-converter.html

antwoordde op 06/11/2009 om 08:30
bron van user

stemmen
1

Ik heb een paar SQL server naar Oracle migraties gedaan. Er is geen manier om te migreren, zonder het herschrijven van de backend code. Te veel verschillen tussen de 2 databases en nog belangrijker verschillen tussen de 2 geest sets van de programmeurs. Veel managers denken dat de 2 onderling verwisselbaar zijn, heb ik had managers vragen me om de stored procedures van SQL server te kopiëren en te compileren ze in orakel, geen flauw idee! Toad is veruit de beste tool op de markt voor het ondersteunen van een Oracle Application. SQL ontwikkelaar is ok, maar was teleurstellend in vergelijking met pad. Ik hoop dat het orakel hun product zal inhalen pad één dag, maar het is er nog niet. Heb een goede dag :) de kans groot dat als u migreren naar orakel het is voor een reden en om die eis je nodig hebt om de back-end code te herschrijven of je zal veel problemen hebben te voldoen.

antwoordde op 18/04/2010 om 21:12
bron van user

stemmen
4

Ik moet dingen om op te noemen.

1) Als ik op Oracle 8 werkte, kon je dat niet doet "Select @Result", moest je in plaats daarvan gebruik maken van de dummy tabel als volgt: "Kies @Result van dual". Niet zeker of dat belachelijkheid nog steeds bestaat.

2) In de Oracle wereld lijken ze om liefde cursors en kun je beter op hen, ze gebruiken ze de hele tijd AFAICS.

Veel succes en geniet,

Het is niet zo verschillend MS SQL. Gelukkig hoef ik niet meer te werken met het en ik ben weer in het warme comfort van MS gereedschap.

antwoordde op 18/04/2010 om 21:26
bron van user

stemmen
0

Een paar mensen hebben hier genoemd omzetten terug en vooruit. Ik weet niet van een instrument om te zetten van MSSQL aan Oracle, maar ik gebruikte de gratis MS gereedschap om een ​​Oracle converteren db te MSSQL en het werkte voor mij en omgebouwd een grote db zonder problemen die ik kan bellen. Het is vergelijkbaar met de Access to MSSQL hulpmiddel dat MS ook gratis. Genieten

antwoordde op 18/04/2010 om 21:31
bron van user

stemmen
1

In Oracle SQL Developer, is er een tool genaamd Translation Scratch Editor. U vindt het via Extra> Migration.

De Oracle SQL Developer is een gratis download van Oracle en het is een eenvoudig te installeren.

antwoordde op 20/12/2010 om 15:11
bron van user

stemmen
14

Ik krijg de indruk dat de meeste antwoorden zich richten op het migreren van een hele database of gewoon wijzen op een aantal verschillen tussen T-SQL en PL / SQL. Onlangs had ik het zelfde probleem. De Oracle database bestaat, maar ik moet een hele lading van T-SQL-scripts om te zetten in PL / SQL.

Ik installeerde Oracle SQL Developer en rende de Translation Scratch Editor (Extra> Migratie> Translation Scratch Editor).

Dan hoeft u alleen maar uw T-SQL, kiest u de juiste vertaling in de dropdownlist (het moet standaard 'T-SQL naar PL / SQL'), en om te zetten.

antwoordde op 15/11/2011 om 15:19
bron van user

stemmen
0

jOOQ heeft een openbare, gratis vertaler, die kan worden geraadpleegd op de website hier: https://www.jooq.org/translate

Het ondersteunt DML, DDL, en enkele procedurele syntax-elementen. Wilt u de vertaling lokaal wordt uitgevoerd via de command line, kan een licentie worden aangeschaft en de command line werkt als volgt:

$ java -cp jooq-3.11.9.jar org.jooq.ParserCLI -t ORACLE -s "SELECT substring('abcde', 2, 3)"
select substr('abcde', 2, 3) from dual;

Zie: https://www.jooq.org/doc/latest/manual/sql-building/sql-parser/sql-parser-cli

(Disclaimer, ik werk voor de leverancier)

antwoordde op 29/01/2019 om 11:43
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more