В БД хранится информация о выгрузке (код, название, SQL-запрос, входные параметры).
Входные параметры хранятся тупо в поле varchar. Каждый параметр имеет свой постоянный номер в этом поле (1, 2, 3...) и его значение либо 0 либо 1 (требовать заполнения перед выгрузкой или нет). Например - "ИНСТР-001 00000110100".
Если внимательно посмотреть на запрос (хотя не нужно этого делать), то там тупо заголовок и отдельно сам запрос. Всё это через текстовый файл отправляется в Эксель. Наверно так было сделано, чтобы продвинутый пользователь мог сам подправить запрос. Сейчас новые требования. В выгрузках нужно красивое форматирование, диаграммы, несколько листов. В общем переделываем. Делаем процедуру, которая выдаёт это в Эксель. Информация о процедуре храниться в БД.
Пользователь имеет вот такой экран:
При выборе нужной выгрузки открываются поля параметров, которые нужно заполнить. И есть кнопка "Выгрузить".