出力するときに、改行とかタブとか悪さしそうなものを単純カットしたい、
というときに、replaceを多段で書けていたのですが、頭悪いなーと思って調べたらありました。
oracle10gあたりからの実装のようです。
regexp_replaceで[[:space:]]をカットする方法。
検証用SQL
select 'aaa' || chr(13) || chr(10) || chr(9) || 'bbb' from dual
select regexp_replace('aaa' || chr(13) || chr(10) || chr(9) ||
'bbb','[[:space:]]','') from dual
CHR(13) → CR
CHR(10) → LF
CHR(9) → TAB
[[:space:]]は「印字不可能文字」を除外するらしいので、
上記3パターン以外にもカットされるものがあるかもしれませんが、
表示出来ない、悪さしそうな文字をとにかく除去したいのでありがたいです。
参考
http://www.shift-the-oracle.com/sql/regular-expression-metacharacter.html
というときに、replaceを多段で書けていたのですが、頭悪いなーと思って調べたらありました。
oracle10gあたりからの実装のようです。
regexp_replaceで[[:space:]]をカットする方法。
検証用SQL
select 'aaa' || chr(13) || chr(10) || chr(9) || 'bbb' from dual
select regexp_replace('aaa' || chr(13) || chr(10) || chr(9) ||
'bbb','[[:space:]]','') from dual
CHR(13) → CR
CHR(10) → LF
CHR(9) → TAB
[[:space:]]は「印字不可能文字」を除外するらしいので、
上記3パターン以外にもカットされるものがあるかもしれませんが、
表示出来ない、悪さしそうな文字をとにかく除去したいのでありがたいです。
参考
http://www.shift-the-oracle.com/sql/regular-expression-metacharacter.html

コメント