2010-11-05 28 views
1

我的程序塊:程序問題(在語法錯誤)

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; 

並出現錯誤:

alt text

回答

6

您需要發出撤銷爲EXECUTE IMMEDIATE,建立一個動態字符串用你想要執行的命令:

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