У меня запрос следующей структуры:
SELECT 'SELECT ' || col_list || ' from schema.table;' from( Select table_name, rtrim(xmlagg(xml element(e, Case when datatype in ('blob', 'timestamp') then null else column_name end , ', ').extract('//text()') order by c_id).getclobval(), ', ' ) col_list from all_tab_cols where schema ='schema' and table in ('t1', 't2') group by table_name)
Это дает мне вывод, когда первые два, четвертый и шестой столбцы имеют тип blob или timestamp:
SELECT , , third_col, , fifth_col, from schema.table;
Как изменить запрос таким образом, чтобы он предоставлял:
SELECT third_col, fifth_col from schema.table;
Этот результирующий оператор выбора далее сохраняется как строка в кадре данных spark (я использую Scala).Так что, если мы можем изменить запрос с помощью регулярных выражений или замены подстрок, это тоже может сработать, и я тоже открыт для этих предложений, но я был бы признателен, если бы мне не пришлось взламывать этот способ и управлять им.на самой стороне запроса.