作业,不会,急!!!!
创建函数verify_function 。 
要求: 
 该函数提供限制: 
 口令长度至少为4; 
 口令不能和用户名相同; 
 口令至少由字母,数字,一个符合组成;(特殊符号:!"#$%&()``*+,-/:; <=>?_) 
 口令不能是一个简单的明显的单词;(单词:'welcome', 'database', 'account', 'user', 'password', 'oracle', 'computer', 'abcd') 
 口令至少有3个字符与以前的口令不同; 
 该函数提供三个varchar2类型的输入参数,分别是:username、password、old_password; 
 该函数返回boolean类型,即口令是否校验成功。 

解决方案 »

  1.   

    口令至少由字母,数字,一个符合组成;
    这句是什么意思
    大体如下
    create or replace function func(v_username in varchar2,
                                     v_password in varchar2,
                                     v_old_password in varchar2)
    return boolean
    as
    num number:=0;
    begin
    if length(v_password)<4 
      or v_password in (v_username,'welcome','database','account','user','password','oracle','computer','abcd')
      or not regexp_like(v_password,'[[:alpha:]]+')
      or not regexp_like(v_password,'[[:digit:]]+')
      or not regexp_like(v_password,'[[:punct:]]+')
    then return false;
    end if;
    for i in 1..length(v_password) loop
      for j in 1..length(v_old_password) loop
        if substr(v_password,i,1)=substr(v_old_password,j,1) then goto 1;
        end if;
      end loop;
        num:=num+1;
        if num>=3 then return true; end if;
      <<1>> 
        null;
    end loop;
    return false;
    end func;
    测试begin
    if func('a','bce13)','abcdef') then 
      dbms_output.put_line(1);
    else dbms_output.put_line(0);
      end if;
    end;这里将  口令至少由字母,数字,一个符合组成  这句理解为必须同时包含字母数字和符号。如果理解有错,则将3个regexp_like部分改下