ORA-00918: Столбец определён неоднозначно
OracleЧто это значит?
Столбец с одним и тем же именем есть в нескольких таблицах запроса, и поскольку он используется без префикса таблицы/псевдонима, Oracle не может определить, к какой таблице он относится.
Почему возникает?
В обеих соединяемых таблицах есть столбец с одинаковым именем (например, ID в обеих); столбец используется без квалификации (без префикса) в SELECT, WHERE или ORDER BY.
Как исправить
Квалифицируйте каждый неоднозначный столбец именем таблицы или псевдонимом: SELECT a.id, b.id FROM tableA a JOIN tableB b ON a.id = b.a_id; Давайте таблицам короткие псевдонимы и указывайте префикс у всех столбцов для удобства чтения и ясности.
Ещё по этой СУБД
- ORA-02291Нарушено ограничение целостности — родительский ключ не найден
- ORA-02292Нарушено ограничение целостности — найдена дочерняя запись
- ORA-00979Выражение не входит в GROUP BY (not a GROUP BY expression)
- ORA-06550Строка/столбец PLS-...: ошибка компиляции PL/SQL
- ORA-04068Существующее состояние пакетов было сброшено
- ORA-01427Однострочный подзапрос возвращает более одной строки
- ORA-12899Значение слишком велико для столбца