3

当我尝试执行使用 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)。

为什么代码不执行?

4

2 回答 2

9

您缺少 AS:

WITH cte1 AS
(
  SELECT *
  FROM test_table
)
SELECT *
FROM cte1;
于 2012-06-20T22:31:01.570 回答
8

我刚刚想通了——我需要在 CTE 名称后面加上 AS 关键字。所以声明应该是:

WITH cte1 AS
(
  SELECT *
  FROM test_table
)
SELECT *
FROM cte1;
于 2012-06-20T22:30:42.517 回答