【问题标题】:Error ORA-00933: SQL command not properly ended | Oracle错误 ORA-00933:SQL 命令未正确结束 |甲骨文
【发布时间】:2021-02-20 00:12:37
【问题描述】:

我收到了错误:

错误 ORA-00933:SQL 命令未正确结束

当我运行以下 ORACLE 查询时:

Select "col1", "col2" 
from SCHEMANAME.TABLENAME 
OFFSET 100 ROWS FETCH NEXT 100 ROWS ONLY

有什么解决办法吗?

【问题讨论】:

  • 您在select 中缺少双引号。如果这是您的问题的原因,那只是一个错字。

标签: sql oracle sql-order-by offset sql-limit


【解决方案1】:

我的猜测是您正在运行 Oracle fetch 子句不可用。

典型的解决方法是使用窗口函数:

select col1, col2
from (
    select t.*, row_number() over(order by id) rn
    from schemaname.tablename t
) t
where rn between 101 and 200;

请注意,为了使您的原始查询和此查询都产生稳定的结果,您需要一个确定性地定义行顺序的列。我假设id

如果你确实想要一个不稳定的排序,我不推荐,那么在row_number()over() 子句中使用order by null

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多