-4

特定のユーザーからシステム権限を削除するプロシージャを作成しようとしています。コードをコンパイルすると、「コンパイルエラー」が発生します

create or replace procedure deactivate_user 
(
p_username in varchar2
)
as
l_username varchar2(30):=upper(p_username);
cnmd varchar2(50);
begin
    for rec (select privilege, admin_option from dba_sys_privs
            where grantee = l_username) loop
            cnmd := 'REVOKE '||rec.privilege||' from '||l_username;
execute immediate cnmd;
end loop;
end;
/
4

1 に答える 1

1

あなたは声明に欠けINています。FORそのはず:

FOR rec IN (SELECT privilege, admin_option FROM dba_sys_privs
            WHERE grantee = l_username) LOOP

http://docs.oracle.com/cd/E11882_01/appdev.112/e17126/static.htm#CIHCGJADを参照してください。

于 2013-02-11T20:50:48.423 に答える