SELECT
RPAD(i.ProductID||',', 2+(SELECT MAX(LENGTH(i.ProductID)) FROM i)) ||
RPAD(i.ProductDesc||',', 2+(SELECT MAX(LENGTH(i.ProductDesc)) FROM i)) ||
'£'||i.TotalValueSold padded
FROM
(
SELECT
'ProductID' as ProductID,
'ProductDesc' as ProductDesc,
'TotalValueSold' as TotalValueSold from table(sys.odcivarchar2list(1))
UNION ALL
SELECT
TO_CHAR(ProductID),
ProductDesc,
TO_CHAR(TotalValueSold)
FROM ProductInfoFinancial
) i
GROUP BY i.ProductID, i.PRODUCTDESC, i.TotalValueSold