Frage

Warum funktioniert es nicht?

SELECT a.*
FROM dual a
     JOIN (SELECT * FROM dual WHERE 1=1) b
     ON (1=1);

Ich bekomme "ora-00900: Ungültige SQL-Anweisung". Gibt es eine Möglichkeit, die Klausel innerhalb der Unterabfrage zu verwenden?

Bearbeiten: Version 9.2

SELECT *
FROM v$version

Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Produktion

Die folgenden Ausführungen finden in Ordnung ausgeführt:

SELECT a.*
FROM dual a
     JOIN (SELECT * FROM dual /*WHERE 1=1*/) b
     ON (1=1)
War es hilfreich?

Lösung

Es funktioniert bei mir bei 9.2 (32 -Bit -Version ist der einzige Unterschied):

SQL> SELECT a.*
  2  FROM dual a
  3       JOIN (SELECT * FROM dual WHERE 1=1) b
  4       ON (1=1);

D
-
X

SQL> quit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
With the OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production

Andere Tipps

Welche Version verwenden Sie?

Genau das gleiche SQL funktioniert für mich einwandfrei (Oracle Database 10G Express Edition Release 10.2.0.1.0).

Orakel unten 9i unterstützt nicht ANSI Schließen Sie die Syntax bei.

Verwenden Sie dies, wenn Sie eingeschaltet sind 8i und darunter:

SELECT  a.*
FROM    dual a,
        (
        SELECT  *
        FROM    dual
        WHERE   1 = 1
        ) b
WHERE   1 = 1

Es sieht für mich richtig aus und ich kann es in 10G ausführen, aber es versagt mit 8i, welche Version von Oracle verwenden Sie?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top