Это мой код:ORA - 00935: отсутствует выражение
select max(vhis_data.C0432_SAMPL_VALUE1_R), vhis_data.C0401_aid
from vhis_data, T0401_accounts
where vhis_data.C0401_aid = T0401_accounts.C0401_aid
and (
vhis_data.c0401_aid between 1179 and 1291 or
vhis_data.c0401_aid between 1382 and 1402 or
vhis_data.c0401_aid between 1462 and 1620 or
# and so on until...
vhis_data.c0401_aid between 5450 and 5485 or
vhis_data.c0401_aid between 5503 and 5495 or
)
(эти цифры представляют различные точки в системе)
Программа отображается сообщение об ошибке:
vhis_data.c0401_aid between 1179 and 1291 or
*
ERROR at line 5:
ORA-00936: missing expression
Я «Я заметил, что первая часть ошибки ссылается на первую строку в моей части кода and (...)
. Я также заметил, что есть or
на последней строке моего кода. Я могу вытащить его, но это лишний or
только причина, что вся and (...)
часть не работает? Или есть еще одна причина, по которой мой код не работает?
(я предполагаю, вложенный мой вопрос, то есть, если есть отсутствует выражение, где делает код остановка выполнения правильно?)
Например, здесь, недостающее выражение потенциально последней строки (потому что он ожидает что-то после «или»). Однако код даже не проходит через первую строку части кода and (...)
.
Я прочесал сеть для объяснений, касающихся ошибки ORA-00936: отсутствует выражение, но не нашли ничего подходящего, чтобы помочь мне в этой конкретной ситуации.
Я приветствую любую критику или совет, которые у вас могут быть, и благодарим вас заблаговременно за любые вклады, которые вы мне даете!
Запрос разобран в целом. Когда вы говорите, что код даже не проходит через первую строку и (...) части кода_, это на самом деле не имеет смысла. Теперь строка #, указанная в ошибке, может не всегда указывать вам точное место, к сожалению – GriffeyDog
У Oracle есть довольно расплывчатые сообщения об ошибках. Это один из тех. Хороший способ определить причину - принять детские шаги. Напишите запрос skelton и запустите его. Затем добавьте немного и запустите его снова. Если вы получите ошибку во второй раз, вы узнаете, что это вызвано бит, который вы только что добавили. –