在一个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取出值时的大小有限定的?有没有办法解决呢?哪位大虾知道的望请说说,在线苦等!

解决方案 »

  1.   

    试一试通过多次重起数据库看下。
    也可以通过内部事件:
    alter session set events 'IMMEDIATE trace name ADJUST_SCN level 1';
    测试一下
      

  2.   

    重启即可以解决?请问一下,是属于bug还是代码问题呢?
      

  3.   

    举个例子:
    例一:
    SELECT extractValue(OBJECT_VALUE,
                        '/PurchaseOrder/LineItems/LineItem/Description/text()').getStringVal()  FROM purchaseorder;
    例二:
    extract(OBJECT_VALUE, '/PurchaseOrder/Reference/text()').getStringVal()
      

  4.   

    更详细文档,请参阅:
    http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14259/xdb04cre.htm#sthref465