【问题标题】:XML parsing failed on OracleOracle 上的 XML 解析失败
【发布时间】:2012-07-18 12:07:01
【问题描述】:

我在 oracle db 上使用查询,它使用 xmltype 函数和 xpath 从 clob 中提取值。不幸的是,查询失败并报告“XML 解析失败”。我假设 clob 中的字符串之一不是有效的 XML。如何判断哪一行受到影响?

【问题讨论】:

  • 我在原始查询中添加了rownum,解析失败的错误就消失了……

标签: xml oracle parsing xmltype


【解决方案1】:

一种解决方案是对一小部分数据执行查询,然后通过添加类似于以下的条件来慢慢减少记录数量:

AND id BETWEEN 20 AND 2000

另一种方法是使用这样的游标一个接一个地获取记录:

DECLARE
  CURSOR cur IS 
    /* Your SQL goes here */
    SELECT * FROM xx_invalid_row_t;

  table_row xx_invalid_row_t%ROWTYPE; /* change the table name*/
  row_count NUMBER :=0;
BEGIN
  OPEN cur;
  LOOP
    row_count := row_count + 1;
    FETCH cur INTO table_row;
    IF cur%NOTFOUND THEN
      EXIT;
    END IF;
  END LOOP;
  CLOSE cur;

  dbms_output.put_line('No errors here');
EXCEPTION
 WHEN OTHERS THEN
   dbms_output.put_line('Error on row '||row_count||' with message: '|| sqlerrm);
   dbms_output.put_line('Last successfully fetched row has the id:'||table_row.id);
END;

如果您偶然发现更直接的方式,请告诉我。

【讨论】:

  • @lewap 很难说没有看到实际的查询和错误信息
猜你喜欢
  • 1970-01-01
  • 2019-09-02
  • 2011-03-28
  • 1970-01-01
  • 2019-08-17
  • 2011-03-19
  • 1970-01-01
  • 2017-03-22
相关资源
最近更新 更多