用户写了过程,利用DBMS_UTILITY.EXEC_DDL_STATEMENT包调用later语句,提示权限;
CREATE OR REPLACE Function ZL_MODIFY_PASSWORD(USERNAME VARCHAR2)
Return Varchar2 Is
Pragma Autonomous_Transaction;
V_SQL_STR VARCHAR2(500);
V_RESULT Varchar2(300) := '更新失败';
Begin
V_SQL_STR:='ALTER USER '||USERNAME||' identified by '||'I39';
DBMS_UTILITY.EXEC_DDL_STATEMENT(V_SQL_STR);
V_RESULT := '密码恢复成功!';
Return V_RESULT;
Exception
When Others Then
null;--zl_ErrorCenter(SQLCode, SQLErrM);
Return V_RESULT;
End;
用户已经授予了DBMS_UTILITY包的权限,但是还是提示无权限执行,原因是没有授予执行用户alter any user权限,无法执行alter user 操作,只需要再授予alter user 权限,该过程执行成果。