日期:2014-05-16  浏览次数:20511 次

oracle中去掉文本中的换行符、回车符、制表符小结

一、特殊符号ascii定义
?制表符 chr(9)
?换行符 chr(10)
?回车符 chr(13)

二、嵌套使用repalce,注意每次只能提交一个符号,如先回车再换行
????????? select REPLACE(gg, chr(10), '') from dual
??? 要注意chr(13) | | chr(10) 此类结合使用的情况比较多,回车换行在notepad中是比较好看点的,所以要考虑此种情况
????????? select translate(string,chr(13)||chr(10),',') from dual;
1、例子一
create table TEST_1
(
? VA? VARCHAR2(10),
? VB? NUMBER(2),
? VC? VARCHAR2(10),
? VD? NUMBER(11,2),
? VE? NUMBER(11,4),
? VCL CLOB
);

SQL> select vb,vc,replace(vc,chr(10),'') as TT, translate(vc,chr(10),',') from test_1;
?
?VB VC???????? TT???????? TRANSLATE(VC,CHR(10),',')
--- ---------- ---------- -------------------------
? 0 Aaaaaaaaa? Aaaaaaaaa? Aaaaaaaaa
? 1 Aaaaaaaaa? Aaaaaaaaa? Aaaaaaaaa
? 2 大Ba?????? 大Babc带?? 大Ba,b,c带
??? b????????????????????
??? c带??????????????????
?
? 3 C????????? C????????? C
? 1 D????????? D????????? D
? 5 A????????? A????????? A
? 5 A????????? A????????? A
? 0 A????????? A????????? A
? 0 A????????? A????????? A
?
?2、例子二
要注意chr(13) | | chr(10) 此类结合使用的情况比较多,回车换行在notepad中是比较好看点的,所以要考虑此种情况
select vb,vc,replace(vc,chr(10),'') as TT, translate(vc,chr(13)||chr(10),',') from test_1;
SQL> select vb,vc,replace(vc,chr(10),'') as TT, translate(vc,chr(13)||chr(10),',') from test_1;
?
?VB VC???????? TT???????? TRANSLATE(VC,CHR(13)||CHR(10),
--- ---------- ---------- ------------------------------
? 0 Aaaaaaaaa? Aaaaaaaaa? Aaaaaaaaa
? 1 Aaaaaaaaa? Aaaaaaaaa? Aaaaaaaaa
? 2 大Ba?????? 大Babc带?? 大Babc带
??? b????????????????????
??? c带??????????????????
?
? 3 C????????? C????????? C
? 1 D????????? D????????? D
? 5 A????????? A????????? A
? 5 A????????? A????????? A
? 0 A????????? A????????? A
? 0 A????????? A????????? A
?
11 rows selected

三、对于字符大对象的符号处理
??? 对于clob字段中的符号处理,先to_char然后一样的处理

SQL> select to_char(vcl),replace(to_char(vcl),chr(10),'[]') from test_1;
?
TO_CHAR(VCL)???????????????????????????????????????????????????????????????????? REPLACE(TO_CHAR(VCL),CHR(10),'
-------------------------------------------- --------------------------------------------
嵌 套使用repalce,注意每次只能提交一个符号,如先回车再换行??????????????????????? 嵌套使用repalce,注意每次只能提交一个符号,如先回车再换行[]select REPLACE(gg, chr(10), '') from dual[]sel
select REPLACE(gg, chr(10), '') from dual???????????????????????????????????????
select translate(string,chr(13)||chr(10),',') from dual;????

func:

?

2.2.1????? 单记录字符函数

??????? 函???? 数????????????????????? 说??????????????? 明
? ASCII???????????????????? 返回对应字符的十进制值
? CHR?????????????????????? 给出十进制返回字符?
?CONCAT??????????????????? 拼接两个字符串,与? ||?????? 相同
? INITCAT?????????????????? 将字符串的第一个字母变为大写
? INSTR???????????????????? 找出某个字符串的位置
? INSTRB??????????????????? 找出某个字符串的位置和字节数
? LENGTH??????????????????? 以字符给出字符串的长度
? LENGTHB?????????????????? 以字节给出字符串的长度
? LOWER???????????????????? 将字符串转换成小写
? LPAD????????????????????? 使用指定的字符在字符的左边填充
? LTRIM???????????????????? 在左边裁剪掉指定的字符
? RPAD????????????????????? 使用指定的字符在字符的右边填充
? RTRIM???????????????????? 在右边裁剪掉指定的字符
? REPLACE?????????????????? 执行字符串搜索和替换
? SUBSTR??????????????????? 取字符串的子串
? SUBSTRB?????????????????? 取字符串的子串(以字节)
? SOUNDEX?????????????????? 返回一个同音字符串
? TRANSLATE???????????????? 执行字符串搜索和替换
? TRIM????????????????????? 裁剪掉前面或后面的字符串
? UPPER???????????????????? 将字符串变为大写
? NVL?????????????????????? 以一个值来替换空值

ASCII(<c1>)
<c1>是字符串。返回与指定的字符对应的十进制数。
SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;

???? A????? a? ZERO?? SPACE
---------- ---------- ---------- ----------
???? 65???? 97???? 48???? 32

SQL> select ascii