今天遇到一個問題,一個報表中的字段傳到另一個報表中以后,字符串中的換行符和制表符都丟失了,導致數據查詢出錯。試了幾個辦法,沒有解決,最后無奈用了一個很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) --空格符