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) --空格符

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM