[Oracle] SQL Fehler

Argh, ich dreh grad schier durch :wink:
Ich habe ein Programm in Java geschrieben und mit Access über ODBC getestet. Nun habe ich mal statt Access Oracle angehängt, weil das Ding eigentlich mit jeder Datenbank funktionieren soll (zumindest Access, Oracle 8i, SQL Server).

Aber irgendwie frisst mir Oracle ein „LEFT JOIN“ nicht, da gibts einen Fehler an der Stelle im SQL-String.
Ist das kein standardisierter Befehl? Weil ich kann auf keinen Fall je nach Datenbank was anderes tun, mein Programm weiss nämlich nicht was für eine Datenbank darunterliegt…

‚LEFT JOIN‘ - gehört nicht zum Oracle-Sprachumfang. Ob es zum Standard gehört weiss ich nicht.

Aber zeig mal deine Query und ich sag dir wie es in Oracle funktioniert (kannst du dann ja unter Access testen).

Gruß Janus

SELECT SubKey, Bezeichnung FROM SYS_ALL11 LEFT JOIN SYS_ALL11_LAC ON SYS_ALL11.ID = SYS_ALL11_LAC.LongKey WHERE LanguageCode = ‚ENG‘

Das selbe Problem werde ich dann bei anderen Abfragen auch nochmal haben… hoffentlich gibt es irgendein Muster nachdem ich das umsetzen kann :wink:

Ob es zum Standard gehört weiss ich nicht.

Gehört AFAIK nicht zum SQL Standard. Kommt von MS, Access und SQL Server können es. MySQL unterstützt es auch als sogenannten „ODBC Syntax“, ich weiß aber nicht ob ODBC das vorschreibt (wohl eher nicht, weil sonst müßte es ja auch bei Oracle zumindest über ODBC gehen).

Grüße, Robert

(wohl eher nicht, weil sonst müßte es ja auch bei
Oracle zumindest über ODBC gehen).

Und das geht nicht :wink: weil ich genau das gemacht habe

Bei Oracle werden die Joins anders dargestellt:

SELECT SubKey, Bezeichnung FROM SYS_ALL11 LEFT JOIN
SYS_ALL11_LAC ON SYS_ALL11.ID = SYS_ALL11_LAC.LongKey WHERE
LanguageCode = ‚ENG‘

SELECT SubKey, Bezeichnung 
 FROM SYS\_ALL11, SYS\_ALL11\_LAC 
 WHERE SYS\_ALL11.ID(+) = SYS\_ALL11\_LAC.LongKey 
 AND LanguageCode = 'ENG'

Das selbe Problem werde ich dann bei anderen Abfragen auch
nochmal haben… hoffentlich gibt es irgendein Muster nachdem
ich das umsetzen kann :wink:

Nun ja, left join bedeutet, mach ein (+) auf der linken Seite dran, bei right join auf der rechten :smile:

Schönen Gruß

J.

1 „Gefällt mir“

Danke das habe ich inzw. auch rausgefunden… leider is das zu MS Access / SQL Server nicht kompatibel… ich versuche es nun irgendwie zu umgehen und mit innerjoins hinzukommen

Trotzdem danke
Bruno