なんて醜いことでしょう。
それはすべて文字データですか、それともそこに数値や日付/時刻の値がありますか?その場合、それらを文字列に変換するときに、それらのデータ型にどの形式を使用しますか。
また、フィールドとレコードの区切り文字について考える必要があるかもしれません。
XMLを検討しましたか?
declare
v_clob clob;
v_xml xmltype;
begin
select xmlagg(XMLELEMENT("test",xmlforest(id,val)))
into v_xml
from test;
select v_xml.getclobval
into v_clob
from dual;
dbms_output.put_line(v_clob);
end;
/