Home > Software engineering >  Oracle missing FROM clause
Oracle missing FROM clause

Time:08-04

Is it possible to create a CTE without a FROM, and if not isn't that the whole point of a CTE in the first place?

WITH cte AS
(
  SELECT 1 AS col1, 2 AS col2
)
SELECT col1, col2 FROM cte;

> ORA-00923: FROM keyword not found where expected

It seems a quick-fix for this is just adding FROM DUAL whenever needed. Is that what's supposed to be done?

CodePudding user response:

Yes, that's exactly what dual is supposed to be used for.

Selecting from the DUAL table is useful for computing a constant expression with the SELECT statement. Because DUAL has only one row, the constant is returned only once.

https://docs.oracle.com/cd/B19306_01/server.102/b14200/queries009.htm

  • Related