用存储过程解析出来相应的字段值,插入数据库(=号左边的为数据库字段,右边的为要插入的数据)。
status=DELIVRD&spid=657&mobile=13566678899&linkid=sfdsf122121212&msg=ADSFVS12123&port=106677888&fee=200
用存储过程把这个解析出来,把数据存到表里面。& 字符在 oracle 里有特殊含义的,用这个&做分隔符,很麻烦with qiudf_a
as
(
select 'status=DELIVRD'||'&'||'spid=657'||'&'||'mobile=13566678899'||'&'||'linkid=sfdsf122121212'||'&'||'msg=ADSFVS12123'||'&'||'port=106677888'||'&'||'fee=200' a01 from dual
)
select substr(a,1,instr(a,'=')-1) AA,substr(a,instr(a,'=')+1,length(a)-instr(a,'=')+1)BB
from
(
select
substr(a01,1,instr(a01||'&','&',1)-1) A
from qiudf_a
union all
select
substr(a01,instr(a01||'&','&',1,level)+1,instr(a01||'&','&',1,level+1)-instr(a01||'&','&',1,level)-1)
from qiudf_a
connect by level<=6
)
--result:
1 status DELIVRD
2 spid 657
3 mobile 13566678899
4 linkid sfdsf122121212
5 msg ADSFVS12123
6 port 106677888
7 fee 200