FETCH 抛出异常 java.sql.SQLSyntaxErrorException: ORA-00918:列定义不明



每当我添加这行代码时,它总是抛出异常

OFFSET 0 ROWS
FETCH NEXT 10 ROWS ONLY;

完整代码:

SELECT 
EMPLOYEES.EMPLOYEE_ID,
EMPLOYEES.FIRST_NAME, EMPLOYEES.LAST_NAME, EMPLOYEES.EMAIL,
EMPLOYEES.PHONE_NUMBER, EMPLOYEES.HIRE_DATE, EMPLOYEES.JOB_ID,
EMPLOYEES.DEPARTMENT_ID, EMPLOYEES.MANAGER_ID, EMPLOYEES.SALARY,
JOBS.JOB_ID, JOBS.JOB_TITLE, DEPARTMENTS.DEPARTMENT_ID,
DEPARTMENTS.DEPARTMENT_NAME, DEPARTMENTS.MANAGER_ID, M.EMPLOYEE_ID,
M.FIRST_NAME
|| ' '
|| M.LAST_NAME AS MANAGER_NAME 
FROM 
EMPLOYEES 
INNER JOIN 
JOBS ON EMPLOYEES.JOB_ID = JOBS.JOB_ID 
INNER JOIN  
DEPARTMENTS ON EMPLOYEES.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_ID 
INNER JOIN  
EMPLOYEES M ON DEPARTMENTS.MANAGER_ID = M.EMPLOYEE_ID 
ORDER BY 
EMPLOYEES.EMPLOYEE_ID ASC 

我想显示来自我网站中多个表的数据,并将其限制为仅十个输出,但它总是抛出异常。我该怎么办?我尝试添加别名,但没有用。

您的问题的简单答案是:

根据关于FETCH的Oracle 12c文档:

如果选择列表包含具有相同名称的列,并且您 指定row_limiting_clause,则发生 ORA-00918 错误。这 无论同名列是否位于同一列中,都会发生错误 表或在不同的表中。您可以通过以下方式解决此问题 为同名列指定唯一的列别名。

干杯!!

为重复名称指定别名

M.FIRST_NAME as "Manager name"

或者没有as

DEPARTMENTS.DEPARTMENT_ID "Department ID",

最新更新