有无法自动抓取列列表(oracle 11g)

时间:2010-02-26 21:40:13

标签: sql oracle oracle11g unpivot

这是Transpose one row into many rows 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}},它将从查询/视图/表中获取所有列名称是在第一部分中选择的?

1 个答案:

答案 0 :(得分:2)

您可以通过动态创建SQL语句作为字符串创建存储过程来在PL / SQL中执行此操作,然后使用execute immediate执行它并返回游标。