Итак, в основном у меня есть столбец с несколькими электронными письмами, и некоторые из них недействительны и содержат разные символы/возвраты каретки, которые не разрешены.
Ниже показано, как я нахожу недопустимые электронные письма в операторе выбора, но я понятия не имею, как заменить их по отдельности, например, если найден возврат каретки, я знаю, что буду использовать оператор замены. То же самое с любыми специальными символами. Но для этого потребуется написать отдельный запрос для каждого возможного случая?
В основном то, что я прошу, - это наиболее эффективный способ перебора моей таблицы, заменяющий любые символы в адресе электронной почты, который соответствует одному из этих операторов case.
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’