Not quite what you are looking for, but still interesting for Oracle.
WITH t AS (SELECT 'one' column_one, 'two' column_two, 'three' column_three FROM dual) SELECT XMLTYPE(EXTRACT(VALUE(T), '/*').GETSTRINGVAL()).GETROOTELEMENT() VALUE FROM TABLE(XMLSEQUENCE(XMLTYPE((CURSOR (SELECT * FROM t))).EXTRACT('/ROWSET/ROW/*'))) T;
Basically, you convert the resulting columns to XML, and then remove the tag tags from it; Thus, this sample will give you the following result.
VALUE ----------- COLUMN_ONE COLUMN_TWO COLUMN_THREE
If your original query returns more than one row, then you will get your higher result set multiplied by the number of rows.
I think you could use PIVOT in 11g to convert it back to a single line, but I donβt have the corresponding instance manually, so I canβt say for sure.
source share