用A000001用户创建存储过程
把用户密码改成与用户名相同,存储过程如下:
CREATE OR REPLACE PROCEDURE ALTER_PASSWORD
-- 修改密码
(
 p_user in varchar2
 ) is
 
 sqlstr varchar2(400);
 acur integer ;
 ignore integer;begin
  acur := dbms_sql.open_cursor;
  sqlstr := 'alter user '||p_user||' identified by '||p_user ; 
  DBMS_SQL.PARSE(acur, sqlstr,dbms_sql.native);
  ignore :=dbms_sql.execute(acur);
  DBMS_SQL.close_cursor(acur);
    
  commit;
end ALTER_PASSWORD; sqlplus中以A000001登陆调用如下:
exec ALTER_PASSWORD('A000001');
运行成功但是以A000002登陆调用
exec A000001.ALTER_PASSWORD('A000002');
报错权限不足,在DBMS_SQL.PARSE(acur, sqlstr,dbms_sql.native);谢高手指点!