Отключить автоматический захват списка столбцов (оракул 11 г) - PullRequest
2 голосов
/ 27 февраля 2010

Это дополнительный вопрос к Транспонирование одной строки в несколько строк Oracle

Я хочу иметь возможность отменить произвольный результат запроса.

Чтобы отменить поворот таблицы вручную, я бы сделал:

select value_type, value from (
 (
  -- query to be unpivoted
  -- EG: select col1, col2, col3, col4, col5 from table
 )
 unpivot
 (
  -- Line I would like to change
  value for value_type in (col1, col2, col3, col4, col5)
 )
);

Это работает для всех запросов, которые возвращают 5 столбцов, называемых col1, col2 и т. Д. Есть ли что-то, что я вставил вместо value for value_type in (col1, col2, col3, col4, col5), который будет захватывать все имена столбцов из запроса / представления / таблицы, выбранной в первая часть?

1 Ответ

2 голосов
/ 28 февраля 2010

Вы можете создать хранимую процедуру для этого в PL / SQL, динамически создавая инструкцию SQL в виде строки и затем используя execute immediate для ее выполнения и возврата курсора.

...