Я создал представление, которое отличается от предложения select.
Когда я пытаюсь выбрать все записи с помощью «select * from view», я получаю следующую ошибку:
ORA-01446: cannot select ROWID from view with DISTINCT, GROUP BY, etc.
Я искал, почему это происходит, и пришел к этому:
Вы попытались создать представление, включающее ROWID в оператор SELECT, а также такое предложение, как DISTINCT или GROUP BY. Это не разрешено 1010 * Reference *
Это неудобно, поскольку выбранная позиция в представлении не выбирает идентификатор строки и не используется ни в одном другом пункте (где, порядок и т. Д.)
Есть идеи по этому поводу?
Обновление
Я не могу опубликовать запрос сам, но я публикую похожий запрос. Вот оно:
SELECT DISTINCT t1.c1 TABLE1_C1,
t1.c2 TABLE1_C2,
t1.c3 TABLE1_C3,
t1.c4 TABLE1_C4,
t1.c4 TABLE1_C4,
t1.c5 TABLE1_C5,
t1.c6 TABLE1_C6,
t1.c7 TABLE1_C7,
t1.c8 TABLE1_C8,
t2.c1 TABLE2_C1,
t2.c2 TABLE2_C2,
t2.c3 TABLE2_C3,
t2.c4 TABLE2_C4,
t2.c5 TABLE2_C5,
t3.c1 TABLE3_C1,
t2.c6 TABLE2_C6,
t4.c1 TABLE4_C1,
t4.c2 TABLE4_C2,
t4.c3 TABLE4_C3
FROM table1 t1
LEFT JOIN table2 t2
ON t1.c1 = t2.c7
left JOIN table4 t4
ON t4.c4 = t2.c1
LEFT JOIN table3 t3
ON (t2.c1 = t3.c2
AND t2.c8 = t3.c3
AND t2.c9 = t3.c4)
WHERE (t2.cp5 = 0 or t2.cp5 is null)
AND (t2.c3 =
(SELECT MAX(c3)
FROM table2 s_t2
WHERE s_t2.c3 LIKE t2.c3
AND s_t2.c7 = t1.c1
) or t2.c3 is null)