通过Oracle函数产生随机密码

下面是一个通过PL/SQL写的一个函数,函数的意图是返回一个随机密码,这个随机密码有大些字母和数字组成,密码的字符不能重复。

CREATE OR REPLACE FUNCTION AAS.AAS_RANDOM_PASSWORD_FUN
   RETURN VARCHAR2
IS
   TEMP   VARCHAR2 (8);
/******************************************************************************
   NAME:       AAS_RANDOM_PASSWORD_FUN
   PURPOSE:   产生随机密码(密码不能包含重复字母/ERP ,只能大写字母/10.7,大写字母+数字)

 ******************************************************************************/
BEGIN
   SELECT   SUBSTR ('ABXCDKEFGHYIJKLCMNIOPWQRSTUAVWXYBZYXAS',                        //源字符串一共38位,截取其中4位。
                    ROUND (DBMS_RANDOM.VALUE (1, 26)),        //通过随机函数获取一个1~26之间的数据,把这个数据作为SUBSTR函数的起始位。
                    4)                                                                                 //从起始位开始,向后截取4位。
            || SUBSTR ('0712534968079351284302', ROUND (DBMS_RANDOM.VALUE (1, 20)), 2)                //同理,这个是截取2位数字
     INTO   TEMP                //把结果赋值给Temp
     FROM   DUAL;

   RETURN TEMP;           //返回TEMP
END AAS_RANDOM_PASSWORD_FUN;
/

 

你可能感兴趣的:(oracle,function,Random,fun)