oracle - ORA-00907 在 SELECT 中缺少右括号
问题描述
我在 SELECT 语句中为这个错误挣扎了一段时间;快速搜索了几篇具有相同错误的帖子,但这是一个非常普遍的错误,没有人描述这种特殊情况。
select 'hello' as some_value,
(
select min(table_name) from user_tables order by table_name
) as min_tab
from dual;
ORA-00907: 缺少右括号 00907. 00000 - “缺少右括号” *原因: *行动: 行错误:3 列:44
为什么?(当然很明显,现在我把它归结为一个最小的例子)
解决方案
该错误非常无用,它的真正含义是在 SQL 中的某个点上发生了其他事情,而右括号将是唯一有效的事情。
在这里,问题是ORDER BY
在这个位置是不合法的。
select 'hello' as some_value,
(
select min(table_name) from user_tables
) as min_tab
from dual;