----特殊符号对应的ASCII码------------
chr(9) tab空格 chr(10) 换行 chr(13) 回车 Chr(13)&chr(10) 回车换行
chr(32) 空格符 chr(34) 双引号 chr(39) 单引号

chr(33) ! chr(34) " chr(35) # chr(36) $ chr(37) %
chr(38) & chr(39) ' chr(40) ( chr(41) ) chr(42) *
chr(43) + chr(44) , chr(45) - chr(46) . chr(47) /

Chr(48) 0 Chr(49) 1 Chr(50) 2 Chr(51) 3 Chr(52) 4
Chr(53) 5 Chr(54) 6 Chr(55) 7 Chr(56) 8 Chr(57) 9

chr(58) chr(59) ; chr(60) < chr(61) = chr(62) >
chr(63) ? chr(64) @

chr(65) A chr(66) B chr(67) C chr(68) D chr(69) E
chr(70) F chr(71) G chr(72) H chr(73) I chr(74) J
chr(75) K chr(76) L chr(77) M chr(78) N chr(79) O
chr(80) P chr(81) Q chr(82) R chr(83) S chr(84) T
chr(85) U chr(86) V chr(87) W chr(88) X chr(89) Y
chr(90) Z

chr(91) [ chr(92) \ chr(93) ] chr(94) ^ chr(95) _
chr(96) `

chr(97) a chr(98) b chr(99) c chr(100) d chr(101) e
chr(102) f chr(103) g chr(104) h chr(105) i chr(106) j
chr(107) k chr(108) l chr(109) m chr(110) n chr(111) o
chr(112) p chr(113) q chr(114) r chr(115) s chr(116) t
chr(117) u chr(118) v chr(119) w chr(120) x chr(121) y
chr(122) z

chr(123) { chr(124) | chr(125) } chr(126) ~ chr(127)
chr(128) chr(153)? chr(169) ? chr(174) ?
--END------------------------------------------------------------------------------------

chr(9) 是制表符
chr(13) 是一个回车
chr(10) 是个换行符
chr(32) 是一个空格符

‘&’符号在SQL中有特殊含义,所以在SQL中想要写入&,需要特殊处理。
用Oracle的字符串处理函数chr处理。chr(38)表示 &符号
如:select chr(38) from dual;
SQL> select 'a'||chr(38)||'b' from dual;
结果:a&b
如:select ascii('&') from dual;

再附一个单引号(')的例子(I'm OK):
SELECT 'I' || '''m OK' from dual;
SELECT 'I''m OK' from dual;
SELECT 'I'||Chr(39)||'m OK' FROM dual;
前两个都是转义字符(只是用不用连接符||的区别),第3中是一个字符替换。

还是用translate 可以过滤掉一个字符集合
replace 只能过滤掉指定字符

1.translate
语法:TRANSLATE(char, from, to)
用法:返回将出现在from中的每个字符替换为to中的相应字符以后的字符串。
若from比to字符串长,那么在from中比to中多出的字符将会被删除。
三个参数中有一个是空,返回值也将是空值。
举例:SQL> select translate('abcdefga','abc','wo') 返回值 from dual;
返回值
-------
wodefgw
分析:该语句要将'abcdefga'中的'abc'转换为'wo',
由于'abc'中'a'对应'wo'中的'w',
故将'abcdefga'中的'a'全部转换成'w';
而'abc'中'b'对应'wo'中的'o',
故将'abcdefga'中的'b'全部转换成'o';
'abc'中的'c'在'wo'中没有与之对应的字符,
故将'abcdefga'中的'c'全部删除;
简单说来,就是将from中的字符转换为to中与之位置对应的字符,
若to中找不到与之对应的字符,返回值中的该字符将会被删除。
在实际的业务中,可以用来删除一些异常数据,
比如表a中的一个字段t_no表示电话号码,
而电话号码本身应该是一个由数字组成的字符串,
为了删除那些含有非数字的异常数据,
就用到了translate函数:
SQL> delete from a,
where length(translate(trim(a.t_no),
'0123456789' || a.t_no,
'0123456789')) <> length(trim(a.t_no));
2.replace
语法:REPLACE(char, search_string,replacement_string)
用法:将char中的字符串search_string全部转换为字符串replacement_string。

举例:SQL> select REPLACE('fgsgswsgs', 'fk' ,'j') 返回值 from dual;
返回值
---------
fgsgswsgs
SQL> select REPLACE('fgsgswsgs', 'sg' ,'eeerrrttt') 返回值 from dual;
返回值
-----------------------
fgeeerrrtttsweeerrrttts
分析:第一个例子中由于'fgsgswsgs'中没有与'fk'匹配的字符串,
故返回值仍然是'fgsgswsgs';
第二个例子中将'fgsgswsgs'中的字符串'sg'全部转换为'eeerrrttt'。
总结:综上所述,replace与translate都是替代函数,
只不过replace针对的是字符串,而translate针对的是单个字符。

---cxmr501a------------------------------------
####20120424 BY XXXX**********************************************************
## 处理特殊符号对报表造成的影响,将特殊符号替换成空格
## 注意每次只能提交一个符号,如先回车再换行
## 要注意chr(13)||chr(10) 此类结合使用的情况比较多
## 制表符 chr(9)
## 换行符 chr(10)
## 回车符 chr(13)
SELECT REPLACE(ta_cno33,chr(13)||chr(10),' '),
REPLACE(ta_cno34,chr(13)||chr(10),' '),
REPLACE(ta_cno35,chr(13)||chr(10),' '),
REPLACE(ta_cno36,chr(13)||chr(10),' '),
REPLACE(ta_cno37,chr(13)||chr(10),' '),
REPLACE(ta_cno38,chr(13)||chr(10),' ')
INTO cno.ta_cno33,cno.ta_cno34,cno.ta_cno35,
cno.ta_cno36,cno.ta_cno37,cno.ta_cno38
FROM cno_file WHERE cno01=cno.cno01

SELECT REPLACE(ta_cno33,chr(10),' '),
REPLACE(ta_cno34,chr(10),' '),
REPLACE(ta_cno35,chr(10),' '),
REPLACE(ta_cno36,chr(10),' '),
REPLACE(ta_cno37,chr(10),' '),
REPLACE(ta_cno38,chr(10),' ')
INTO cno.ta_cno33,cno.ta_cno34,cno.ta_cno35,
cno.ta_cno36,cno.ta_cno37,cno.ta_cno38
FROM cno_file WHERE cno01=cno.cno01
####END**********************************************************************

更多相关文章

  1. 如何通过使用where子句与字符串格式(varchar(103),...,10)将103格式化
  2. 数据库截取字符串SUBSTR函数的使用
  3. MySQL中的字符串模式匹配
  4. 从SQL字符串分割多桩分隔符
  5. ORACLE-SQL:定义并使用多字符串变量
  6. 字符集问题的初步探讨(五)----如何识别导出文件的字符集
  7. 关于mysql对字符串的数字的排序
  8. 不正确的字符串值:'\xF0\x9F\ xB6\xF0\x9F…' MySQL。
  9. 如何生成字符串'a'..'zzz'然后将它们保存到表中?

随机推荐

  1. Android(安卓)滑动效果入门篇(二)—— Gall
  2. Android KTX简介
  3. Android新浪微博客户端—开篇
  4. Android菜单留痕
  5. Android从网上获取图片的简单示例
  6. 关于Handler的理解
  7. 当expandlistview的getGroupView或者getC
  8. Android实现垂直型的SeekBar
  9. Android常用基本界面元素汇总
  10. Android的WebView简单使用实例(附Demo)