1. 在数据库中排查特殊字符
-
declare n_count number; begin for i in 1..60 loop select count(1) into n_count from targetTable where targetCol like '%'|| chr(i) ||'%'; if n_count > 0 then dbms_output.put_line(i || ' : ' || n_count);--输出包含字符的行 end if; end loop; end;
一般在 ascii 1~8 14~ 27是乱码
-
可以通过以下语句查询出来看
-
begin for i in 1..200 loop dbms_output.put_line(i||':'||chr(i)); end loop; end;
由于有乱码,结果无法复制.大家在plsql里面执行一次就看到了
-
2 替换数据
-
replace(col,chr(26),'')
我这边遇到的就是 ascii 26的字符,替换了就没事了.
-
一般是用户复制粘贴pdf或word内容导致, 不过我们前端输入时应该要首先排除掉特殊字符, 但是一般由于时间原因都未做.