sql - 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 错误。无论同名列是在同一个表中还是在不同的表中,都会出现此错误。您可以通过为同名列指定唯一列别名来解决此问题。
干杯!!
推荐阅读
- c++ - 在源文件中创建具有结构成员的结构
- sql-server - 正确索引 UNPIVOT SQL 查询
- actionscript-3 - 使用 actionscript 3.0 和 Animate CC 和 AIR 开发 Android 相机移动应用程序
- javascript - 一次向 MySQL 表中插入多行
- webview - 如何在 vscode webview 中使用 iframe
- apache-kafka-streams - 如何使用 Kafka Streams 对 Spring Cloud Stream 进行单元测试
- php - 从容器内部发送请求时出现 PDO 异常
- java - 如何在 Android Studio 中改变 listView 中的项目数量?
- python - QuerySet 上的 range() 用于 QuerySet 上的 tqdm
- macos - 如何在 iOS Catalina (10.15.1) 上解决此错误消息