質問

それが動作しないのはなぜ?

SELECT a.*
FROM dual a
     JOIN (SELECT * FROM dual WHERE 1=1) b
     ON (1=1);
私は ":無効なSQL文ORA-00900" を取得します。 サブクエリ内のWHERE句を使用する方法はありますか?

編集:バージョン9.2

SELECT *
FROM v$version

Oracle9iのEnterprise Editionのリリース9.2.0.8.0 - 64ビットの製造

以下の実行だけで結構ます:

SELECT a.*
FROM dual a
     JOIN (SELECT * FROM dual /*WHERE 1=1*/) b
     ON (1=1)
役に立ちましたか?

解決

9.2(32ビット版が唯一の違いはある)のそれは私のために動作します:

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

他のヒント

あなたはどのバージョンを使用していますか?

まったく同じSQLが私のために罰金を動作します(Oracle Databaseの10グラムExpress Editionのリリース10.2.0.1.0)。

9i以下Oracleが結合構文をANSIをサポートしていません。

使用このお8iに上下している場合:

SELECT  a.*
FROM    dual a,
        (
        SELECT  *
        FROM    dual
        WHERE   1 = 1
        ) b
WHERE   1 = 1
それは私には正しく見えると私は10グラムで、それを実行することができていますが、それは8iのは、Oracleのバージョンを使用していますか?

で失敗します
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top