したがって、基本的に私は複数の電子メールの列を持っており、それらのいくつかは無効であり、許可されていない異なる文字/キャリッジリターンが含まれています。
以下は、selectステートメントで無効なメールを見つける方法ですが、個別に置き換える方法がわかりません。たとえば、キャリッジリターンが見つかった場合は、replaceステートメントを使用します。特殊文字と同じです。しかし、それには、考えられるケースごとに個別のクエリを作成する必要がありますか?
基本的に、私が求めているのは、これらのケースステートメントの1つに一致する電子メールアドレス内の文字を置き換えるために、テーブルを反復処理するための最も効率的な方法です。
select /*+ parallel(a,12) full(a) */ a.row_id, a.par_row_id, a.attrib_01, a.created_by, a.last_upd_by from s_contact_xm a
where a.type = 'Email' and (a.attrib_01 IS NULL
or a.attrib_01 like '% %'
or a.attrib_01 like '%@%@%'
or a.attrib_01 like '%..%'
or a.attrib_01 like '%;%'
or a.attrib_01 like '%:%'
or attrib_01 not like '%@%'
or a.attrib_01 like '%/%'
or a.attrib_01 like '%\%'
or a.attrib_01 like '%|%'
or a.attrib_01 like '%@.%'
or a.attrib_01 like '%@'
or a.attrib_01 like '%.'
or a.attrib_01 like '%(%'
or a.attrib_01 like '%)%'
or a.attrib_01 like '%<%'
or a.attrib_01 like '%>%'
or a.attrib_01 like '%#%'
or a.attrib_01 like '%"%'
or a.attrib_01 like '%.@%'
or a.attrib_01 like '%..%'
or a.attrib_01 like '.%'
or a.attrib_01 IS NULL
or INSTR(a.attrib_01, CHR(13)) > '0'
or INSTR(a.attrib_01, CHR(10)) > '0') and a.created_by = ‘1-XAAX5P’