create or replace function MD5 (
vin_string IN VARCHAR2
) RETURN VARCHAR2 IS
BEGIN
RETURN lower(Dbms_Obfuscation_Toolkit.Md5 ( input => utl_raw.cast_to_raw(vin_string)
            ));
END MD5;
 
Create Or Replace Trigger init_user
Before Insert
On SYS_USER
For Each Row
Declare
  v_pwdenc varchar2(200);
Begin
If (:New.USER_ID is Null) Then
  Select USER_SEQ.Nextval Into :New.USER_ID From dual;
  If(:New.PASSWORD Is Null) Then
  Select :New.USERNAME Into :New.PASSWORD From dual;
  Else
      v_pwdenc:=MD5(:New.Password);
      Select v_pwdenc Into :New.PASSWORD From dual;  
  End If;
End If;
End;
 
Create Or Replace Trigger init_user_right
After Insert 
On SYS_USER
For Each Row  
Begin
  insert into SYS_USERGROUP (GROUP_ID, USER_ID)
  values (7, :New.USER_ID);
End;
 
Create Or Replace Trigger delete_user_right
Before Delete
On SYS_USER
For Each Row
Begin
  Delete From SYS_USERGROUP Where USER_ID=:Old.USER_ID;
End;