首先执行此代码的用户需要有权限,其次不能给自己附权限
declare
-- Local variables here
i integer;
v_sql varchar2(1000);
v_from_user varchar2(100);
v_to_user varchar2(100);
begin
v_to_user := 'user1';
v_from_user := 'user1';
-- Test statements here
for x in (select t.* from dba_tables t where t.OWNER = upper(v_from_user)) loop
v_sql := 'grant select,insert,update,delete on ' || v_from_user || '.' || x.table_name ||
' to ' || v_to_user;
execute immediate v_sql;
end loop;
end;