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