51代码网ORACLEMYSQLSQL SERVER其它数据库java/jspasp/asp.netC/C++/VC++APP应用其它语言服务器应用
您现在的位置: 51代码网 >> oracle >> 文章正文

用存储过程解析出来相应的字段值,插入数据库

更新时间:2012-1-14:  来源:51代码网

用存储过程解析出来相应的字段值,插入数据库(=号左边的为数据库字段,右边的为要插入的数据)。
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

  • 上一篇文章:
  • 下一篇文章: 没有了
  • 赞助商链接
    推荐文章
  • 此栏目下没有推荐文章
  • {
    设为首页 | 加入收藏 | 友情链接 | 网站地图 | 联系站长 |