2008-10-30 11 views
0

Мы видим сообщение об ошибке ORA-00936 Отсутствует выражение для следующих SQL:Что может вызвать 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 является внешним ключом к этому столбцу, здесь в основном нет никакой магической или скрытой информации.


Edit: В ответ на ответ, нет, вам не нужно псевдонимы здесь, как столбцы с уникальными именами по таблицам.


Решено: Проблема заключалась в том, что клиент был запущен неверную версию драйвера клиента, 9.2.0.1, и существуют известные проблемы с этой версией.

ответ

1

Это должно работать, если имена столбцов не являются двусмысленными (и даже если бы они были, это привело бы к другой ошибке). Я побежал эквивалент заявление и получил результат без ошибки:

SQL> select (select count(*) from emp2 where empdeptno = deptno) 
    2 from dept 
    3 where deptno=10 
    4/

(SELECTCOUNT(*)FROMEMP2WHEREEMPDEPTNO=DEPTNO) 
--------------------------------------------- 
              3 

погуглить оказывается, что есть или были Oracle ошибки, приводящие к ORA-00936 ошибок - см this for example.

+0

Да, это был случай. – 2008-10-30 13:03:38

3

Проблема заключалась в том, что у клиента была неправильная версия драйвера клиента, 9.2.0.1, и есть известные проблемы с этой версией.

 Смежные вопросы

  • Нет связанных вопросов^_^