powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Откуда может возникнуть ошибка ORA-00942?
4 сообщений из 4, страница 1 из 1
Откуда может возникнуть ошибка ORA-00942?
    #39390480
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть SQL-запрос с таким фрагментом:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
select ...
from ...
...
, left join
(
  select S.SERVICE_ID
  , wm_concat(regexp_replace(ST.NAME, '^.*[0-9]. ТО ТВ1 (.+) ([A-Z0-9]+).*$', '\1')) as NAMES
  , wm_concat(lower(substr(SS.LOGIN, length(S.LOGIN)+2))) as CODES
  , count(*) as COUNT
  from SERVICES S
  join CUSTOMERS C on (C.CUSTOMER_ID = S.CUSTOMER_ID)
  join SERVICES S0 on (S0.TYPE_ID = 14 and S0.LOGIN = S.LOGIN and S0.STATUS != -20)
  join SERVICES SS on (SS.CUSTOMER_ID = S.CUSTOMER_ID and SS.TYPE_ID = S.TYPE_ID and SS.STATUS != -20 and SS.LOGIN like S.LOGIN||':%')
  join BM_TARIFF ST on (ST.TARIFF_ID = SS.TARIFF_ID)
  where S.STATUS != -20
  and S.TYPE_ID = 202
  and C.GROUP_ID in (select ID from IDGROUPS where SCOPE = 'client-groups')
  and S.TARIFF_ID in (select ID from IDGROUPS where SCOPE = 'custom-plans' and EXTRA = 'iptv:base')
  group by S.SERVICE_ID
) TV3 on (TV3.SERVICE_ID = S.SERVICE_ID)
...


При запуске выдает ошибку "ORA-00942: таблица или представление пользователя не существует", выделяя строку с ST.NAME.
BM_TARIFF это настоящая таблица (не представление), как и остальные таблицы в FROM.
Если выделить только вложенный запрос, то он выполняется успешно.
Во внешнем запросе альяс ST нигде не используется.
Откуда может браться эта ошибка?

________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
Откуда может возникнуть ошибка ORA-00942?
    #39390485
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,

Это может быть баг связанный с трансформациями запросов, с subquery factoring и много еще с чем.
Что тебе мешает вырезать из запроса лишнее пока не поймешь причину?
...
Рейтинг: 0 / 0
Откуда может возникнуть ошибка ORA-00942?
    #39390491
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я вырезал, запускал по частям и ничего лишнего найти не мог.
Пока не запостил вопрос на форуме и не увидел запятой перед left join.
В TOAD почему-то глаз замылился и эту запятую не замечал.
Можно закрывать.
...
Рейтинг: 0 / 0
Откуда может возникнуть ошибка ORA-00942?
    #39390502
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,

Вырезал - это когда у тебя осталось пара-тройка таблиц, а не вся эта каша.
Дейтсивтельно, в твоем случае он ищет таблицу с именем left.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Откуда может возникнуть ошибка ORA-00942?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]