数据库上的ALTER之后,在Oracle中提供旧密码值
我正在编写一个触发器,以便在更新“sys.users$”表时获取“password”值数据库上的ALTER之后,在Oracle中提供旧密码值,oracle,triggers,passwords,alter,Oracle,Triggers,Passwords,Alter,我正在编写一个触发器,以便在更新“sys.users$”表时获取“password”值 CREATE OR REPLACE TRIGGER Sys_User_Nm_Trg AFTER ALTER ON DATABASE WHEN (ora_dict_obj_type = 'USER') DECLARE CURSOR get_pw IS SELECT password FROM sys.user$ WHERE name = ora_dict_obj_name; user_pw_ VARCHA
CREATE OR REPLACE
TRIGGER Sys_User_Nm_Trg AFTER ALTER ON DATABASE
WHEN (ora_dict_obj_type = 'USER')
DECLARE
CURSOR get_pw IS
SELECT password
FROM sys.user$
WHERE name = ora_dict_obj_name;
user_pw_ VARCHAR2(100);
BEGIN
IF (ora_dict_obj_name != 'SYS' AND ora_dict_obj_name != 'SYSTEM') THEN
IF (ora_des_encrypted_password IS NOT NULL) THEN
OPEN get_pw;
FETCH get_pw INTO user_pw_;
CLOSE get_pw;
END IF;
END IF;
END;
/
但此光标给出的是旧的“密码”,而不是更改后的“密码”值。但如果我跑
SELECT password
FROM sys.user$
WHERE name = ora_dict_obj_name;
在单独的事务中,它给出了正确的更改值。我是否应该在触发器中更改某些内容以获取密码的更新值