Just grab the code from Stew Ashton on generic pivot and have them used it here.
https://stewashton.wordpress.com/2018/05/28/generic-pivot-function/ Then it goes like this.
demo@ORA12C> set feedback off
demo@ORA12C> drop table t purge;
demo@ORA12C> drop table gtt purge;
demo@ORA12C> CREATE TABLE T
2 (
3 DT_FIELD DATE,
4 SKEY NUMBER,
5 FIELD_VALUES clob
6 );
demo@ORA12C> INSERT INTO T VALUES('06-SEP-18',10,'68|} 88026 |}ABC|}101010|}ADSD|}');
demo@ORA12C> INSERT INTO T VALUES('07-SEP-18',11,'70|} 88027 |}DEF|}');
demo@ORA12C> INSERT INTO T VALUES('07-SEP-18',12,'101|} 88028|}YYY|}101030|}');
demo@ORA12C> INSERT INTO T VALUES('08-SEP-18',15,'102|} 88029 |}XXX|}101040|}');
demo@ORA12C> INSERT INTO T VALUES('09-SEP-18',20,'501|} 88030 |}XYZ|}101050|}BBB|}111|}');
demo@ORA12C> COMMIT;
demo@ORA12C> create global temporary table gtt(dt_field date,skey int,x1 number,x2 varchar2(30) )
2 on commit preserve rows;
demo@ORA12C> set feedback on
demo@ORA12C>
demo@ORA12C> insert into gtt(dt_field,skey,x1,x2)
2 SELECT dt_field,
3 skey,
4 column_value x1,
5 trim(regexp_substr( field_values, '[^|}]+',1,column_value)) x2
6 FROM t,
7 TABLE( CAST( multiset
8 (SELECT level
9 FROM dual
10 CONNECT BY level <= TRUNC((LENGTH( field_values ) - LENGTH( REPLACE(field_values,'|}')))/2)
11 ) as sys.odcinumberlist) );
22 rows created.
demo@ORA12C> variable x refcursor
demo@ORA12C> exec :x := generic_pivot('( select dt_field,skey,x1,x2 from gtt order by dt_field,x1)','x1','max(x2)');
PL/SQL procedure successfully completed.
demo@ORA12C> print x
DT_FIELD SKEY 1 2 3 4 5 6
----------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
06-SEP-0018 10 68 88026 ABC 101010 ADSD
07-SEP-0018 11 70 88027 DEF
07-SEP-0018 12 101 88028 YYY 101030
08-SEP-0018 15 102 88029 XXX 101040
09-SEP-0018 20 501 88030 XYZ 101050 BBB 111
5 rows selected.
demo@ORA12C>