Ich habe Orakel-Selektionen portiert, und ich habe so viele Anfragen durchgelesen:
%Vor%... und:
%Vor%Gibt es Anleitungen / Tutorials, um alle Varianten der (+) Syntax zu konvertieren? Wie heißt diese Syntax überhaupt (also kann ich googeln)?
Noch besser Gibt es ein Tool / Skript, das diese Konvertierung für mich übernimmt (Preferred Free)? Irgendein Optimierer? Ich habe rund 500 dieser Abfragen an Port ..
Wann wurde dieser Standard auslaufen? Jede Information wird geschätzt.
Die (+)
ist eine Oracle spezifische Prä-ANSI-92 OUTER JOIN-Syntax, da die ANSI-89-Syntax keine Syntax für OUTER JOIN
support bereitstellt.
Ob es RIGHT
oder LEFT
ist, hängt davon ab, welche Tabelle & amp; Spaltenreferenz, an die die Notation angehängt ist. Wenn es neben einer Spalte angegeben ist, die der ersten Tabelle in der FROM
-Klausel zugeordnet ist, handelt es sich um eine RIGHT
-Verbindung. Sonst ist es ein LEFT
beitreten. Dies ist eine gute Referenz für alle, die den Unterschied zwischen JOINs kennen müssen .
Erste Abfrage mit ANSI-92-Syntax neu geschrieben:
%Vor%Zweite Abfrage, die mit ANSI-92-Syntax neu geschrieben wurde:
%Vor% Google "Oracle Join-Syntax". Der (+)
wird für verschiedene Varianten von Outer-Joins verwendet. Ich denke, das erste, das du gezeigt hast, ist ein linker äußerer Join und der zweite ist ein rechtes äußeres Join. Ich habe diese Notation schon eine ganze Weile nicht mehr gesehen, also könnte ich etwas abseits sein, aber hoffentlich gibt es genug Informationen, um Google zu treffen und die richtige Antwort zu bekommen.
UPDATE:
Sie wollen also ein Werkzeug, um es für Sie zu tun? Ich habe gehört, dass SwisSQL so etwas tun kann, aber wenn die meisten Abfragen das sind Einfach genug, Sie können wahrscheinlich ein kleines Skript schreiben, das es für Sie tut. OMG Ponys Antwort zeigt schön das Muster für die Umwandlung von alter zu neuer Syntax.
Dies kann in einfachen Situationen wie
als WHERE-Klausel ziemlich kompliziert werden %Vor%wird in die UNION- oder Subselect-Abfrage übersetzt.
Wenn Sie Python mögen, schauen Sie sich sqlparse an, es sieht vielversprechend aus und Sie werden es vielleicht bekommen zu tun, was Sie brauchen, plus einige Neuformatierung des SQL-Codes. Es würde leicht direkt an der Quelle arbeiten. Sie müssen ihm sagen, was zu tun ist, aber es befreit Sie davon, den langweiligen Parsingteil zu schreiben.
Ich kenne kein Tool, um die Konvertierung automatisch durchzuführen, aber selbst wenn, würde man seine Änderungen von Fall zu Fall überprüfen wollen. Daher glaube ich nicht, dass ein Werkzeug viel Zeit sparen würde.
Ссылка sagt:
Es gibt keinen Leistungsvorteil oder Treffer durch die Verwendung von ANSI-Joins anstelle von herkömmlichen Joins. Durch die Verwendung von ANSI-Joins sind Ihre Abfragen jedoch leichter zwischen DBMS-Plattformen übertragbar und leichter zu lesen. Am Ende kommt es jedoch auf persönliche Vorlieben an. Obwohl der ANSI-Standard Vorteile bietet, müssen Sie nicht wechseln, wenn Sie nicht möchten.
Sie müssen auch nicht den einen oder anderen Stil verwenden. Sie können Ihren Code eine Abfrage gleichzeitig konvertieren, mit der Gewissheit, dass alle weiterhin funktionieren. Ich würde die Abfragen unverändert lassen und die Verwendung der ANSI SQL-92-Syntax in neuem Code auflösen.
Tags und Links sql database oracle plsql outer-join