oracle中去掉文本中的换行符、回车符、制表符、空格小结
一、特殊符号 ASCII 定义
制表符 CHR(9)
换行符 CHR(10)
回车符 CHR(13)
二、嵌套使用 REPLACE,注意每次只能提交一个符号,如先回车再换行
SELECT REPLACE(column01, CHR(10), '') FROM t_name_01;
要注意 CHR(13) || CHR(10) 此类结合使用的情况比较多,回车换行在notepad中是比较好看点的,所以要考虑此种情况
SELECT TRANSLATE(STRING, CHR(13)||CHR(10), ',') FROM t_name_01;
注:TRANSLATE(STRING, from_str, to_str):将 STRING 中所有的 from_str 转换为 to_str;
例:SELECT TRANSLATE('abc00abd00abe00', 'ab', 'x') byname FROM dual;
执行结果:
三、对于字符大对象(CLOB)的符号处理
对于 CLOB 字段中的符号处理,先 to_char 然后一样的处理
SELECT to_char(column01), REPLACE(to_char(column01), CHR(10), '[]') FROM t_name_01;
四、关于 换行符、回车符、制表符、空格的操作
1、去处换行
UPDATE t_name_01 t SET t.column01 = REPLACE(t.column01, CHR(10), '');
2、去掉回车
UPDATE t_name_01 t SET t.column01 = REPLACE(t.column01, CHR(13), '');
3、去掉两端的空格,使用 TRIM(column01) 函数
UPDATE t_name_01 t SET t.column01 = TRIM(t.column01);
4、增加换行符
SELECT 'update ' || table_name || ' set virtual = ''0A'';' || CHR(13) || 'abc;' FROM user_tables;
5、删除换行符
SELECT t.ID, REPLACE(t.column01, to_char(CHR(13) || to_char(CHR(10))), '_r_n') FROM t_name_01 t ORDER BY t.column01;