メールアドレスが有効かどうかを返すオラクル関数があります
CREATE OR REPLACE FUNCTION valid_email (p_email in varchar2)
return string is
v_return varchar2(255);
cemailregexp constant varchar2(1000) := '^[a-z0-9!#$%&''*+/=?^_`{|}~-]+(\.[a-z0-9!#$%&''*+/=?^_`{|}~-]+)*@([a-z0-9]([a-z0-9-]*[a-z0-9])?\.)+([A-Z]{2}|arpa|biz|com|info|intww|name|net|org|pro|aero|asia|cat|coop|edu|gov|jobs|mil|mobi|museum|pro|tel|travel|post)$';
BEGIN
if regexp_like(p_email,cemailregexp,'i') then
v_return := p_email;
else
v_return := null;
end if;
return v_return;
END;
電子メールが正規表現に合格した場合、電子メールを返します。それ以外の場合、返される結果は NULL です。
私が知りたいのは、入力文字列のどの部分が失敗したか、なぜ regex_like が失敗したのですか?
悪い場合は null だけを返すのではなく、おそらく新しい変数が理由です
mgptva;d@uclin2.berkeley.edu にメールを送りたい:
v_return_msg = "無効な文字 ';' 7位
これに対する私の試みが含まれていないことをお詫びします。どこから始めればよいかさえわかりません。グーグル検索は実りがありませんでした