我提供权限的用户名是可更改的。因此,我想编写一个类似SQL的SQL;
grant ANALYZE ANY DICTIONARY to (select USERNAME from DBA_USERS where DEFAULT_TABLESPACE = 'MCP_DATA');
但是,它会出错。 所有意见和建议将不胜感激。
答案 0 :(得分: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;
/