Мы видим сообщение об ошибке ORA-00936 Отсутствует выражение для следующего SQL:
Обратите внимание, что это всего лишь урезанная версия гораздо большего SQL, поэтому перезапись его во внутреннее объединение или подобное не входит в сферу этого:
Сбой SQL:
select (select count(*) from gt_roster where ROS_ROSTERPLAN_ID = RPL_ID)
from gt_rosterplan
where RPL_ID = 432065061
Что я пробовал:
* Извлечение самого внутреннего SQL и подстановка идентификатора из внешнего SQL дает мне число 12.
* Псевдоним как подзапроса, так и количества (*) по отдельности и в то же время не меняет результат (т. Е. Все еще ошибка)
Что еще мне нужно посмотреть?
Выше приведены только таблицы, без представлений, RPL_ID является первичным ключом gt_rosterplan, а ROS_ROSTERPLAN_ID является внешним ключом для этого столбца, здесь в основном нет никакой магической или скрытой информации.
Редактировать: В ответ на ответ, нет, здесь вам не нужны псевдонимы, поскольку столбцы имеют уникальные имена в таблицах.
Решено: Проблема заключалась в том, что на клиенте использовалась неверная версия драйвера клиента, 9.2.0.1, и с этой версией существуют известные проблемы.