oracle替换字段中的空格

今天遇到一个问题,一个报表中的字段传到另一个报表中以后,字符串中的换行符和制表符都丢失了,导致数据查询出错。试了几个办法,没有解决,最后无奈用了一个很low的办法,就是在第二个报表中的条件查询里,对字段进行处理,去掉所有的空格,制表符,换行符以后再比较,算是解决了这个问题。

select m.Sectitemid,
       m.SECTNAME,
       m.SECTDEPT,
       o.name,
       m.sectitemdesc,
       m.sectifyid,
       m.SECDESC,
       m.SECFINRESULT,
       m.SECTSTEATE
  from (Select a.Sectitemid,
               a.SECTNOTICEID,
               a.eventType,
               b.SECTNAME,
               b.SECTDEPT,
               a.sectitemdesc,
               c.sectifyid,
               c.SECDESC,
               c.SECFINRESULT,
               c.SECTSTEATE,
               x.asname
          From v_Sec_Check a
          left join SEC_BAOPESYSTEM x on a.SYSTEMID = x.id
          left join Sec_Rectifynotice b on a.Sectnoticeid = b.Sectnoticeid
          left join SEC_RECTIFYSTEP c on a.Sectitemid = c.sectitemid
         Where 1 = 1
           and NVL(businessType, 'A') <> 'H'
           and a.SECFORMDEPT = '8a8a11ef301b2f3301301bc4324e004a'
           and a.createdt >= to_date('2019-01-01', 'yyyy-mm-dd')
           and a.createdt <= to_date('2019-12-31', 'yyyy-mm-dd')
           and replace(replace(replace(replace(a.sectitemdesc,' ',''),chr(10),''),chr(13),''),chr(9),'') =
               replace(replace(replace(replace('2、个别飞行人员基础理论和基本技能存在不足。1)    侧风操作技能需进一步加强。侧风天气下对飞机运动轨迹的监控以及五边进入时机不够准确。起飞和落地时,舵和侧杆的协调配合不足。拉平蹬舵偏大偏快,放前轮不及时。
(2)    基础理论不扎实。成都本场EOSID程序培训不到位,航线跟班检查时发现机组对该程序的飞行路线及飞行高度理解有误。在管理的非精密进近中,理论知识掌握不全面。
(3)    减推力执行较为保守,没有严格按性能计算数据设定起飞推力。
(4)    湿跑道对正时采用直角转弯技术,当转弯速度和转弯角度偏大时,易导致飞机发生侧向位移。
',' ',''),chr(10),''),chr(13),''),chr(9),'')) m,
       sys_organization o
 where m.SECTDEPT = o.id;

其中最主要的就是那个一连串的replace,看起来不好看,如果用的比较多,可以将他写成一个函数来调用,我这儿就一个报表,就先这么用了。

 


常见特殊字符:
chr(9)   --制表符
chr(10) --换行符
chr(13) --回车符
chr(32) --空格符

 

posted @ 2020-04-20 15:03  兰溪三日桃花雨  阅读(1370)  评论(0编辑  收藏  举报