Я должен выполнить SQL, созданный некоторыми пользователями, и показать его результаты.Пример SQL может быть таким:
SELECT t1.*, t2.* FROM table1 t1, table2 t2, where table1.id = table2.id
Этот SQL работает нормально, как есть, но мне нужно вручную добавить нумерацию страниц и показать rownum, чтобы SQL заканчивался следующим образом.
SELECT z.*
FROM(
SELECT y.*, ROWNUM rn
FROM (
SELECT t1.*, t2.* FROM table1 t1, table2 t2, where table1.id = table2.id
) y
WHERE ROWNUM <= 50) z
WHERE rn > 0
При этом возникает исключение: «ORA-00918: столбец определен неоднозначно», поскольку и Table1, и Table2 содержат поле с одинаковым именем («id»).
Что может быть лучшим способом избежать этого?
С уважением.
В конце концов, нам пришлось пойти по уродливому пути и проанализировать каждый SQL-запрос перед его выполнением.По сути, мы решили звездочки, чтобы узнать, какие поля нам нужно добавить, и присвоили псевдониму каждое поле с уникальным идентификатором.Это привело к снижению производительности, но наш клиент понял, что это единственный вариант с учетом требований.
Я отмечу ответ Lex, поскольку это решение, над которым мы в конечном итоге работали.