TOAD и другие инструменты и среды могут отображать заголовки столбцов, поскольку после получения информации о столбце после выполняется разбор инструкции, которая выполняется при ее выполнении.
В зависимости от вашей среды, вы можете написать код для разбора вашего запроса, а затем анализируемый оператор будет объектом с коллекцией объектов столбцов, которые имеют имя и тип данных и длину в качестве атрибутов. Это возможно на многих языках программирования, которые поддерживают подготовку и выполнение операторов SQL.
В PL/SQL вы также можете анализировать инструкцию и получать информацию о столбцах с использованием пакета DBMS_SQL. Посмотрите в документации здесь: https://docs.oracle.com/database/121/ARPLS/d_sql.htm#ARPLS68199 (прокрутите вниз к примеру 8.)
Упрощенной адаптация примера 8 раз, давая имена столбцов вам нужно:
declare
c number;
col_cnt integer;
rec_tab dbms_sql.desc_tab;
begin
c := dbms_sql.open_cursor;
dbms_sql.parse(c, q'[SELECT 'a' col1, 3 "Col2" FROM dual]', dbms_sql.native);
dbms_sql.describe_columns(c, col_cnt, rec_tab);
for j in 1..col_cnt loop
dbms_output.put_line(rec_tab(j).col_name);
end loop;
dbms_sql.close_cursor(c);
end;
/
Этого выход (если у вас есть DBMS_OUTPUT включен, конечно) следующее:
COL1
Col2
Если вы видите пример 8 в документации вы можете увидеть, что другая информация колонка также доступна, как тип данных, длину, точность и тому подобное.
Почему вам нужны только заголовки без данных? – arunb2w
Вы используете свой sql в определенном приложении, например, в java или в другой структуре программирования? –
Возможный дубликат [Выбрать список имен столбцов/псевдонимов из пользовательского под-запроса] (http://stackoverflow.com/questions/17198923/select-list-of-column-names-aliases-from-custom-sub-query) –