此博客为工做时,所见技术问题的解决方案笔记,欢迎你们转载,转载请注明出处,谢谢~sql
更新时间: 2017-07-12oracle
1. clob字段值读取时,借用extractvalue或extract函数读取节点时,oracle报数据类型不一致异常
函数
解决思路: 数据类型问题,猜想1.多是获取的节点值与所需值类型发生冲突,查看sql,发现实际上并没有关联,若是能查询出节点值,必然为字符串类型,不存在冲突,猜想2.多是空值问题,extractvalue函数不存在空值报错问题,猜想3: 可能clob类型不支持extractvalue函数,由于oracle还有另外一个字段一样也是存xml字符串的---SYS.XMLTYPE类型spa
解决方案: 若是xml字段为clob类型,则将xml字段转成SYS.XMLTYPE类型,即xmltype(xml),若是是SYS.XMLTYPE类型直接用该函数便可3d
更新时间: 2017-10-23xml
2. 解决extractvalue和extract函数获取相同节点名称值,报错失败问题blog
Xmlsequence函数能够将extract函数查找到的同名节点集合生成多行记录,借助table函数生成虚拟表,getstringval函数将节点转化成string字符串字符串