Oracle在所有表中搜索值得出ORA-31011

时间:2017-06-07 08:42:26

标签: oracle plsql oracle11g

我在Stack Overflow上找到了这个查询来搜索所有表中的特定字符串。

set SERVEROUTPUT ON SIZE 100000

DECLARE
  match_count INTEGER;
BEGIN
  FOR t IN (SELECT owner, table_name, column_name
            FROM all_tab_columns
        WHERE owner <> 'SYS' and data_type IN ('CHAR', 'VARCHAR2', 'NCHAR', 'NVARCHAR')) LOOP
EXECUTE IMMEDIATE
  'SELECT COUNT(*) FROM ' || t.owner || '.' || t.table_name ||
    ' WHERE ' || t.column_name || ' = :1'
    INTO match_count
    USING 'my own string';

IF match_count > 0 THEN
  dbms_output.put_line(t.table_name || ' ' || t.column_name || ' ' || match_count);
END IF;
END LOOP;
END;

运行此

时出现以下错误
  

ORA-31011:未执行XML解释ORA-19202:处理XML时发生错误   LPX-00200:无法从第1行的编码UTF-8转换为WINDOWS-1252错误   ORA-06512:vid rad 7 31011. 00000 - “XML解析失败”

     

*原因:XML解析器在尝试解析文档时返回错误。

     

*操作:检查要解析的文档是否有效。我是oracle的新手,在我学习的时候学习

为什么即使我不使用XML,它也会出现XML解析错误?如何解决此错误?

当我只有CHAR作为data_type时,它工作但没有显示任何输出。是因为没有输出或它去了其他地方?在那种情况下,如何检查输出?

0 个答案:

没有答案