以$符号为例, 利用正则表达式拆分字符串
v_head 为标题 格式"字段1$字段2$字段3$..."
v_data 为数据 格式"数据字段1$数据字段2$数据字段3$...", 与标题对应
拆分出来效果就是一个标题字段 对应 一个字段数据。
SELECT regexp_substr(v_head, '[^$]+', 1, t2.lv) field,
--截取对应行数的数据,避免两个分隔符中间空数据,REPLACE替换一下
trim(regexp_substr(REPLACE(v_data, '$$', '$ $'), '[^$]+', 1, t2.lv)) data
FROM (SELECT LEVEL lv --生成行数序列数据 1到最大行数
FROM (SELECT MAX(regexp_count(v_head, '[^$]+', 1)) r_count --计算数据集中拆分后最大的行数
FROM dual a) b
CONNECT BY LEVEL <= b.r_count) t2;