У меня есть запрос, как:ORA 00904 неверный идентификатор с левой/правое внешнее соединение
SELECT *
FROM table1 LEFT OUTER JOIN table2
ON table1.id=table2.c_id
Это дает мне ошибку
ORA-00904 "table2.c_id" неверный идентификатор
Дело в том, что запрос работает с FULL OUTER JOIN и INNER JOIN - без ошибок. Даже этот:
SELECT *
FROM table1, table2
WHERE table1.id=table2.c_id(+)
Ошибка возникает только при прямом или левом внешнем соединении и только при тестировании db.
Обе таблицы разделены.
производства дб, где запрос выполняется идеально - Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64-разрядные производства
Test дб, где запрос не будет - Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Производство
Конфигурация таблиц на обоих db одинакова.
Любые предложения, что это может быть?
У меня нет таблиц для проверки. Пожалуйста, опубликуйте таблицу create и вставьте инструкции для выборочных данных. Или еще, создайте SQL-скрипт и отправьте ссылку –
Вы пытались использовать псевдонимы для table1 и table2, т. Е. 'Select * from table1 t1 left external join table2 t2 на t1.id = t2.c_id'? Есть ли связь с базой данных? (Oracle имеет долгую историю разбитых ANSI-соединений, когда задействованы ссылки БД) –
@FrankSchmitt да, я использовал псевдонимы - без успеха. Не уверены в ссылках на db, проверит – Tatiana