用存储过程解析出来相应的字段值,插入数据库(=号左边的为数据库字段,右边的为要插入的数据)。
status=DELIVRD&spid=657&mobile=13566678899&linkid=sfdsf122121212&msg=ADSFVS12123&port=106677888&fee=200

解决方案 »

  1.   

    & 字符在 oracle 里有特殊含义的,用这个&做分隔符,很麻烦
      

  2.   

    最近几个人这样问了,搞个java里面去处理把,方便的很.
      

  3.   

    用java的String类中的split方法去分割呗
      

  4.   

    问题解决了 呵呵  最终还是是存储过程中调用的java sources 
      

  5.   

    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
    --拆分好好,你自己去选想要的字段!