У меня есть процедура, которая является допустимой, и в ней есть оператор insert..select. Теперь есть случай, когда выполнение этой процедуры выдает ошибку «ORA-00904:: неверный идентификатор» из этого оператора. Как это вообще теоретически возможно? Там нет триггеров или динамического SQL.
Кроме того, текст ORA-00904 в sqlerrm не содержит указателей на какой-либо конкретный идентификатор, который Oracle считает недействительным.
Oracle версия 9.2.0.8
edit2:
Оказалось, что была проблема с функцией, которая была вызвана из этого выбора (заменила ее константами, и все работало). Вероятно, это было причиной того, что ORA-00904 не дал идентификатор. Тем не менее, остается вопрос - как это может быть, что предварительно скомпилированный код без динамического sql дает эту ошибку?