Archery icon indicating copy to clipboard operation
Archery copied to clipboard

oracle数据库使用查询功能查询序列报错

Open saygoodbay opened this issue 1 year ago • 0 comments

重现步骤

在sql查询在线查询功能中查询oracle序列值报错ORA-02287: sequence number not allowed here 经排查是因为在线查询功能强制使用分页导致,Oracle 不允许在子查询或复杂查询(如分页查询、WHERE 子句或 GROUP BY)中使用 CURRVAL 和 NEXTVAL。这些伪列只能用于简单的 SELECT 语句中,不能与分页、排序或其他复杂的 SQL 操作一起使用。

预期外的结果

企业微信截图_17276016302226 企业微信截图_17276016613148

日志文本

2024-09-29 17:20:23,053 - default - WARNING - Oracle 语句执行报错,语句:select sql_audit.* from (SELECT lc_seq.CURRVAL FROM dual) sql_audit where rownum <= 1000,错误信息Traceback (most recent call last):
  File "/opt/archery/sql/engines/oracle.py", line 678, in query
    cursor.execute(sql, parameters or [])
cx_Oracle.DatabaseError: ORA-02287: sequence number not allowed here

版本

v1.11.2

部署方式

Docker

是否还有其他可以辅助定位问题的信息?比如数据库版本等

oracle版本11.0.2

saygoodbay avatar Sep 29 '24 09:09 saygoodbay