特殊符号对应的ASCII码

----特殊符号对应的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**********************************************************************
————————————————
摘自原文链接:https://blog.csdn.net/fmx121586/article/details/7970076

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值