2016-06-21 56 views
0

我正在嘗試列中包含除換行符(十六進制值爲A)之外的任何控制章程的所有行。我已經嘗試了以下內容,但這隻返回具有控制字符且沒有換行的結果。我真的想要一組控制字符的字符,而不是換行字符。字符集是否存在「減號」操作,您可以從中排除特定字符集?Oracle:查找除換行以外的控制字符

SELECT * 
FROM MyTable 
WHERE REGEXP_LIKE(MyColumn, '[:cntrl: &&[^' || UTL_RAW.CAST_TO_VARCHAR2(HEXTORAW('A')) || ']]{1,}'); 

有什麼想法? 謝謝!

回答

0

那麼這裏是第一次嘗試,將工作,但我敢肯定,這可以更優雅和高效:

SELECT * 
FROM MyTable 
WHERE regexp_like(MyColumn, '[[:cntrl:]]') 
AND MyColumn NOT like '%' || chr(10) || '%'; 
+0

這實際上將做同樣的事情,上面的查詢,結果將是隻當存在控制字符且沒有換行符的實例時返回。我需要的是找到所有控制字符的結果,換行符除外。 – jcarman

相關問題