请教如何用PL/SQL过程函数验证邮箱格式是否正确,结果返回true or false,
哪位赐教下哦

解决方案 »

  1.   

    转自网络:CREATE OR REPLACE FUNCTION aris_check_email(l_user_name IN VARCHAR2)
    RETURN VARCHAR2 IS
    l_dot_pos NUMBER;
    l_at_pos NUMBER;
    l_str_length NUMBER;
    BEGIN
    l_dot_pos := instr(l_user_name,'.');
    l_at_pos := instr(l_user_name ,'@');
    l_str_length := length(l_user_name);
    IF ((l_dot_pos = 1) OR (l_at_pos = 1) OR (l_dot_pos = l_at_pos + 1) OR (l_at_pos = 1) OR (l_at_pos = l_str_length) OR (l_dot_pos = l_str_length))
    THEN
    RETURN 'NO';
    END IF;
    IF instr(substr(l_user_name ,l_at_pos+1) ,'.') = 1 OR instr(substr(l_user_name, l_at_pos-1), '.') =1 OR substr(l_user_name, length(l_user_name))='.'
    OR substr(l_user_name, length(l_user_name))='@' OR instr(substr(l_user_name,l_at_pos+1), '.')=0 OR instr(l_user_name, '/')>0 OR instr(l_user_name, '\')>0
    OR instr(substr(l_user_name, l_at_pos+1), '@') >0
    THEN
    RETURN 'FALSE';
    END IF;
    RETURN 'TRUE';
    END aris_check_email;