我在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时,它工作但没有显示任何输出。是因为没有输出或它去了其他地方?在那种情况下,如何检查输出?