2016-06-21 10 views
0

改行文字(16進数の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

関連する問題