ORA-00933: команда SQL неправильно завершена - PullRequest
1 голос
/ 23 марта 2011

Я пытаюсь запустить следующее:

select *
from tax.tax_payer@reis tp
left outer join re_right@reis r on (tp.tin = r.tin or tp.tin = r.tin_a1 or tp.tin = r.tin_a2)
where (r.right_status = -1 or r.right_status is null)
--and r.right_id is not null
and tp.je_id = 12;

но продолжайте получать

ORA-00933: команда SQL неправильно завершена.

Если я удалю комментарий, он будет работать нормально, но почему?

Ответы [ 2 ]

6 голосов
/ 23 марта 2011

Приведенный выше код прекрасно работает в SQL * Plus с подходящими определениями для подключения к удаленной базе данныхТам должно быть какое-то смешное программное обеспечение в вашей реальной среде выполнения.

Попробуйте использовать форму «встроенный комментарий» вместо «до конца строки комментария».Стилистически нет необходимости в ";"в конце операторов SQL, если только они не нужны вашей среде выполнения, или если вы отправляете многострочный процедурный блок кода (а это не так).

select *
  from tax.tax_payer@reis tp
       left outer join 
       re_right@reis r 
       on (   tp.tin = r.tin 
           or tp.tin = r.tin_a1 
           or tp.tin = r.tin_a2
          )
 where (   r.right_status = -1 
        or r.right_status is null
       )
    and tp.je_id = 12
 /* and r.right_id is not null */

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

1 голос
/ 23 марта 2011

В .NET у вас не может быть конечная точка с запятой в вашем запросе - это искажает запрос.

...