AI智能
改变未来

oracle查询和组装xml


一.查询

  1. extract函数,查询节点值,带节点名
--获取带节点的值,例如:<tel>222</tel>select extract(xmltype(e.prj_xml),\'/data/project/persons/person[1]/tel\').getStringVal()as titlefrom project e where e.zh_title=\'123\';--备注如果节点表达式查询一个节点的父节点,则会将该父节点下的所有节点包含该父节点查出
  1. extractvalue函数,查询节点值,不带节点名
select extractvalue(xmltype(e.prj_xml),\'/data/project/persons/person[1]/tel\') as resultfrom project e where e.zh_title=\'123\';

二.组装

  1. xmlforest,将指定列以xml格式查询出来,可指定生成的xml节点名称
select xmlforest(e.zh_title as zhTitle,e.prj_no as prjNo,e.psn_code as psnCode).getStringVal() as xmlfrom project e where e.zh_title=\'123\';
  1. xmlelement,为查询出来的xml添加挂载的父节点,并将xml字符串格式化成xml ,与xmlforest函数配套使用
select xmlelement(data,xmlforest(e.zh_title,e.prj_no,e.psn_code)).getStringVal() as xmlfrom project e where e.zh_title=\'123\';

仅仅使用xmlelement进行组装可以使空值时也同样生成xml标签

select xmlelement(\"EMP\",xmlelement(\"ENAME\", ename),xmlelement(\"JOB\", job),xmlelement(\"MGR\", mgr)).getclobval() xmlfrom scott.emp;
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » oracle查询和组装xml