У меня есть веб-приложение, в котором пользователи вводят произвольные SQL-запросы для последующей пакетной обработки. Мы хотим проверить синтаксис запроса, фактически не выполняя его. Некоторые запросы будут занимать много времени, поэтому мы не хотим их выполнять. Я использую Oracle dbms_sql.parse для этого.
Однако теперь у меня есть ситуация, когда мне нужно знать количество и тип столбцов набора результатов. Есть ли способ сделать это без фактического выполнения запроса? То есть, чтобы Oracle проанализировал запрос и сказал мне, какие итоговые типы данных / имена будут возвращены при фактическом выполнении запроса? Я использую Oracle 10g и это приложение Java 1.5 / Servlet 2.4.
Изменить: пользователи, которые вводят запросы, уже являются пользователями в базе данных. Они аутентифицируются в моем приложении, используя свои учетные данные базы данных, и запросы выполняются с использованием этих учетных данных. Поэтому они не могут вставить ни один запрос, который они не могли бы выполнить, просто подключившись к sqlplus.