Вероятная проблема связана с вашей моделью данных.По крайней мере в одном из ваших критериев JOIN вы присоединяете числовой столбец к столбцу varchar2, что приводит к неявному приведению к числу.Тем не менее, ваш столбец varchar2 содержит строки, которые не являются числовыми, поэтому объединение отбрасывает ORA-01722.
Не зная ваших структур таблиц, мы не можем определить проблемные столбцы, поэтому вам нужно выяснить это для себя.
Одним из решений будет преобразование числового столбца в строку, например
on t1.vcol_pk = to_char(t2.ncol_pk)
. Это может повлиять на производительность (оптимизатор не будет использовать индекс для t2.ncol_pk
).
Лучшим решением было бы исправить модель данных, чтобы вам не нужно было сравнивать строки и числа, а также очищать ваши данные.