0
我授予权限的用户名是可更改的。所以我想写一个如下的SQL;授予动态用户权限SQL
grant ANALYZE ANY DICTIONARY to (select USERNAME from DBA_USERS where DEFAULT_TABLESPACE = 'MCP_DATA');
但是,它给出了一个错误。 所有的意见和建议将不胜感激。
我授予权限的用户名是可更改的。所以我想写一个如下的SQL;授予动态用户权限SQL
grant ANALYZE ANY DICTIONARY to (select USERNAME from DBA_USERS where DEFAULT_TABLESPACE = 'MCP_DATA');
但是,它给出了一个错误。 所有的意见和建议将不胜感激。
使用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;
/
谢谢。这是工作! –
什么是错误? – Prathyush