SQL: Left Join - Oracle 8.1 / MSDE

Hallo

Wir arbeiten mit einer Client Server Software und haben folgendes Problem mti Oracle 8.1 und MSDE 2000:

Oracle setzt bei einem „Left Join“ ein Pluszeichen. Dieses kann die MSDE nicht akzeptieren und verwirft das SQL-Statment…

Kann mir jemand etwas dazu sagen? Was ist der ANSI SQL 92 Standard?
Worauf müssen wir ev. sonst noch achten, wenn wir „normale“ SQL Statments auf beiden DBs absetzen?

Vielen Dank im Voraus für Hinweise und Tipps.

viele Grüsse
Peter

Hallo,

das Plus (+) steht bei Oracle für einem OUTER Join. (Nur damit wir nicht aneinander vorbeireden) Du musst das durch eine UNION Abfrage ersetzen.

– Alle Personen mit ihrer Abteilung
SELECT p.pnr, p.name, p.vorname, a.abteilung, a.abtbez
FROM personal p, abteilung a
WHERE p.abteilung = a. abteilung
UNION
– Alle Personen ohne Abteilung
SELECT pnr, name, vorname, NULL, NULL
FROM personal
WHERE abteilung IS NULL;

Gruß

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

danke. Grüsse Peter owT.
.

Hallo Peter!

Oracle setzt bei einem „Left Join“ ein Pluszeichen. Dieses
kann die MSDE nicht akzeptieren und verwirft das
SQL-Statment…

Soweit mir bekannt unterstützt MSDE die ANSI SQL 92 Syntax (Oracle übrigens ab Version 9i endlich auch). Damit sähe folgendes Statement

SELECT \* 
 FROM address a, customer c 
 WHERE a.addrid=c.addrid(+) AND 
 a.addrid so aus:

    SELECT \*
     FROM address a LEFT OUTER JOIN customer c
     ON a.addrid = c.addrid
     WHERE a.addrid
    
    Gruß
    Martin
    
    
    
    
    > Kann mir jemand etwas dazu sagen? Was ist der ANSI SQL 92  
    > Standard?  
    > Worauf müssen wir ev. sonst noch achten, wenn wir "normale"  
    > SQL Statments auf beiden DBs absetzen?  
    >   
    > Vielen Dank im Voraus für Hinweise und Tipps.  
    >   
    > viele Grüsse  
    > Peter

Super,

habe wieder mal was dazugelernt.

Grüße

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]