FETCH, выбрасывающая исключительную ситуацию java.sql.SQLSyntaxErrorException: ORA-00918: столбец определен неоднозначно - PullRequest
0 голосов
/ 20 июня 2019

Каждый раз, когда я добавляю эту строку кода, всегда выдается исключение

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 

Я хочу отображать данные из нескольких таблиц на своем сайте и ограничивать ихтолько до десяти выходных, но это всегда выдает исключение.Что я должен делать?Я пытался добавить псевдонимы, но это не сработало.

Ответы [ 2 ]

0 голосов
/ 20 июня 2019

Простой ответ на ваш вопрос:

Согласно документации Oracle 12c о FETCH:

Если список выбора содержит столбцы с одинаковыми именами и вы укажите row_limiting_clause, затем произойдет ошибка ORA-00918. это возникает ошибка, если столбцы с одинаковыми именами находятся в таблица или в разных таблицах. Вы можете обойти эту проблему, указание уникальных псевдонимов столбцов для столбцов с одинаковыми именами.

Ура !!

0 голосов
/ 20 июня 2019

Дать псевдоним для повторяющихся имен

M.FIRST_NAME as "Manager name"

или без as

DEPARTMENTS.DEPARTMENT_ID "Department ID",
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...