oracle 用户密码过期后不允许修改密码

--本人是初学者,不知道还有没有更好的方法


create table PASSWD_CHANGED
(
  USER_NAME  VARCHAR2(20),
  OLD_PASSWD VARCHAR2(100),
  NEW_PASSWD VARCHAR2(100)
)


CREATE OR REPLACE FUNCTION my_password_verify(username     VARCHAR2,
                                              password     VARCHAR2,
                                              old_password VARCHAR2)
  RETURN BOOLEAN IS
  v_days NUMBER(20);
BEGIN
  EXECUTE IMMEDIATE 'SELECT  TRUNC(expiry_date)-TRUNC(SYSDATE) FROM DBA_USERS u  WHERE u.username=:username'
    INTO v_days
    USING username;
  IF v_days < 1 THEN
    raise_application_error(-20001, 'the password has expired!'||chr(10)||'Contact :13611111111');
  END IF;
  /*
  IF LENGTH(password) < 6 THEN
  raise_application_error(-20001,'Password must be at least 6 characters long');
  END IF;
  */
  INSERT INTO passwd_changed VALUES (username, old_password, password);
  RETURN(TRUE);
END;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值