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

时间:2012-06-20 22:25:57

标签: 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

我要执行的代码是:

WITH cte1
(
  SELECT *
  FROM test_table
)
SELECT *
FROM cte1;

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

为什么代码不执行?

2 个答案:

答案 0 :(得分:9)

你错过了AS:

WITH cte1 AS
(
  SELECT *
  FROM test_table
)
SELECT *
FROM cte1;

答案 1 :(得分:8)

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

WITH cte1 AS
(
  SELECT *
  FROM test_table
)
SELECT *
FROM cte1;