2017-08-09 239 views
0

我授予权限的用户名是可更改的。所以我想写一个如下的SQL;授予动态用户权限SQL

grant ANALYZE ANY DICTIONARY to (select USERNAME from DBA_USERS where DEFAULT_TABLESPACE = 'MCP_DATA'); 

但是,它给出了一个错误。 所有的意见和建议将不胜感激。

+0

什么是错误? – Prathyush

回答

0

使用EXECUTE IMMEDIATE

DECLARE 
    username DBA_USERS.USERNAME%TYPE; 
BEGIN 
    SELECT USERNAME 
    INTO username 
    FROM DBA_USERS 
    WHERE DEFAULT_TABLESPACE = 'MCP_DATA'; 

    EXECUTE IMMEDIATE 'GRANT ANALYZE ANY DICTIONARY TO ' || username; 
END; 
/
+0

谢谢。这是工作! –