zoukankan      html  css  js  c++  java
  • Oracle中的CHR()函数与ASCII()函数

          工作中经常会处理一些因特殊字符而导致的错误,如上周我就遇到了因为换行符和回车符导致的数据上报的错误,这种错误比较难以发现,通常是由于用户的输入习惯导致的,有可能数据极少,就那么几行错误从而导致整个数据上报失败。处理这种错误可以通过应用端对数据进行过滤、处理,但最简单方便的方法就是通过SQL语句在数据库源端直接处理掉,把特殊字符替换掉等处理,利用replace函数结合CHR()函数或ASCII()函数替换掉特殊字符。

           CHR()函数:将ASCII码转换为字符

           ASCII()函数:将字符转换为ASCII码

      下面是常见字符与ascii对照表,以供参考:
      第一部分由 00H 到 1FH 共 32 个,一般用来通讯或作为控制之用,有些字符可显示于屏幕,有些则无法显示在屏幕上,但能看到其效果(例如换行字符、归位字符)。

     第二部分是由 20H 到 7FH 共 96 个,这 95 个字符是用来表示阿拉伯数字、英文字母大小写和底线、括号等符号,都可以显示在屏幕上。如下表:

        第三部分由 80H 到 0FFH 共 128 个字符,一般称为『扩充字符』,这 128 个扩充字符是由 IBM 制定的,并非标准的 ASCII 码。这些字符是用来表示框线、音标和其它欧洲非英语系的字母。

    最近一次处理回车及换行数据的过程:

    --处理换行
    update  sm_testrexxxxxx t set  value=replace(value,char(10),'')
    where t.recordtimestamp>= to_date('2016-01-01','YYYY-MM-DD HH24:MI:SS') 
    and t.teststateid in  (select teststateid from sm_teststxxxxxx r 
    where r.name like '%检验结论%' and  r.teststateid=t.teststateid);
    
    
    --处理回车
    update  sm_testrexxxxxx t set  value=replace(value,char(13),'')
    where t.recordtimestamp>= to_date('2016-01-01','YYYY-MM-DD HH24:MI:SS') 
    and t.teststateid in  (select teststateid from sm_teststxxxxxx r 
    where r.name like '%检验结论%' and  r.teststateid=t.teststateid);
     
     
    --验证是否还有回车和换行(查询出结果粘在文本框能看出)
    select distinct value,'12' from sm_testrexxxxxx t
    where t.recordtimestamp>= to_date('2016-01-01','YYYY-MM-DD HH24:MI:SS') 
    and t.teststateid in  (select teststateid from sm_teststxxxxxx r 
    where r.name like '%检验结论%' and  r.teststateid=t.teststateid);

     部分内容转自:http://blog.sina.com.cn/s/blog_9d5f7ceb01012i44.html

    -----------------------学习留存--------------------------------

  • 相关阅读:
    【公告】对乐逍遥和王者之剑利用破解程序插入刷流量广告处理结果
    Thunder7.2.13.3884 JayXon
    免费获取半年 Bitdefender Total Security 2014
    WIN8.1 PRO RTM VOL.2013.09.18
    免费一年MAP2014+6个月免费MIS2014
    大蜘蛛9.0正式版
    腾讯控股涉足商业银行 微信或成先头兵
    植物大战僵尸2:奇妙时空之旅[官方安卓简体中文高清版]有内含....
    苹果iPhone 5C和5S发布后,消费者如何选择?
    pandas中DataFrame操作(一)
  • 原文地址:https://www.cnblogs.com/myrunning/p/6197581.html
Copyright © 2011-2022 走看看