Oracle 10g中的CTE - "不支持的列别名"

Jos*_*osh 3 sql oracle common-table-expression

当我尝试执行使用CTE的sql语句时收到以下错误:

ORA-32033: unsupported column aliasing
32033. 00000 -  "unsupported column aliasing"
*Cause:    column aliasing in WITH clause is not supported yet
*Action:   specify aliasing in defintion subquery and retry
Error at Line: 1 Column: 9
Run Code Online (Sandbox Code Playgroud)

我试图执行的代码是:

WITH cte1
(
  SELECT *
  FROM test_table
)
SELECT *
FROM cte1;
Run Code Online (Sandbox Code Playgroud)

我知道这是一个简单的声明,不需要使用CTE,但我只是想在Oracle中开始使用CTE(我来自T-SQL).

为什么代码不执行?

Bri*_*dge 9

你错过了AS:

WITH cte1 AS
(
  SELECT *
  FROM test_table
)
SELECT *
FROM cte1;
Run Code Online (Sandbox Code Playgroud)


Jos*_*osh 8

我只是想出来了 - 我需要CTE名称后面的AS关键字.所以声明应该是:

WITH cte1 AS
(
  SELECT *
  FROM test_table
)
SELECT *
FROM cte1;
Run Code Online (Sandbox Code Playgroud)