日期:2014-05-17  浏览次数:20981 次

获取XMLTYPE字段某个节点值时出现ORA-00600的错误!
在一个xmltype字段里,保存base64编码形式的一些文件,用Select   hd.Data_AM.extract( '/root/ccc/text() ').getStringVal()取出其中某个节点的值(即某个文件的base64编码),发现文件稍稍大一点,也就是编码的字符串多一点就会出现:
  ORA-00600:   内部错误代码,参数:   [kolaslWrite1],   [],   [],   [],   [],   [],   [],   []
ORA-06512:   在 "SYS.XMLTYPE ",   line   0
ORA-06512:   在line   1


的错误,文件小一点,即文件编码短一点的就不会出错,请问是不是xmltype解析xml取出值时的大小有限定的?有没有办法解决呢?哪位大虾知道的望请说说,在线苦等!

------解决方案--------------------
举个例子:
例一:
SELECT extractValue(OBJECT_VALUE,
'/PurchaseOrder/LineItems/LineItem/Description/text() ').getStringVal()

FROM purchaseorder;
例二:
extract(OBJECT_VALUE, '/PurchaseOrder/Reference/text() ').getStringVal()