2010-11-05 3 views
1

Je le bloc de procédure:question de procédure (erreur dans la syntaxe)

begin 
    for i in (select grantee 
        ,table_name 
        ,privilege 
      from user_tab_privs_made 
      where grantee='TEST') 
    loop 
     revoke i.privilege on i.table_name from i.grantee; 
    end loop; 
end; 

et l'erreur se produit:

alt text

Répondre

6

Vous devez délivrer le Révoquer comme EXECUTE IMMEDIATE, la construction d'une chaîne dynamique avec la commande que vous souhaitez exécuter:

execute immediate 'revoke ' || i.privilege || ' on ' || i.table_name 
    || ' from ' || i.grantee;