通过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;
/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值