我需要一个pl sql程序来重置密码

时间:2015-03-04 05:27:06

标签: plsql

我需要一个pl sql代码来重置旧密码,我用密码锁3次尝试,之后我必须编写代码重置密码,这里是执行密码3尝试锁定的代码,我需要重置密码代码

Create or replace 
FUNCTION x_pwd(
      p_user     IN VARCHAR2,
      p_password IN VARCHAR2)
    RETURN VARCHAR2
  IS
    l_error NUMBER;
    l_count NUMBER;
  BEGIN
    SELECT error
    INTO l_error
    FROM credentials
    WHERE username = p_user;

    IF(l_error    >= 3) THEN
      RETURN 'Authentication failed. Reached incorrect number of attempts';
    ELSE
      SELECT COUNT(id)
      INTO   l_count
      FROM   credentials
      WHERE  username   = p_user
      AND    password   = p_password;

      IF l_count > 0 THEN
        UPDATE credentials SET error = 0 WHERE username = p_user;
        RETURN 'LOGIN SUCCESSFUL';
      ELSE
        UPDATE credentials SET error = l_error+1 WHERE username = p_user;
        RETURN 'LOGIN FAILED';
      END IF;
    END IF;
    COMMIT;
  END;

1 个答案:

答案 0 :(得分:0)

检查以下PLSQL代码以重置密码:

BEGIN
   UPDATE credentials
      SET password = p_password               -- use as parameter in procedure
    WHERE username = p_user;

   -- or you can include "and id = p_id" in where clause
   IF SQL%ROWCOUNT > 0
   THEN
      COMMIT;
      RETURN 'Password Reset Successful.';
   ELSE
      RETURN 'Password Reset Failed. Invalid User Name';
   END IF;
END;