组合三个选择语句以提供单个输出



我正在尝试提取需要select "DB Name", "Hostname", Grantee, Granted_role的 Oracle 数据库中数据库角色的报告。为此,准备了三个选择:

select name from v$database;
select host_name from v$instance;
select distinct(grantee), granted_role from dba_role_privs order by 1;

问题是是否可以将这些组合在一起并生成一个报告表:

Server-Name;DB name;Role;Userid

有人可以给出任何提示吗?谢谢!

您可以使用连接来执行此操作,但标量子查询缓存意味着在选择列表中使用标量子查询可能会更快,因为它们被查询一次,然后值重用于所有行,例如:

SELECT DISTINCT (SELECT NAME
             FROM   v$database) db_name,
            (SELECT host_name
             FROM   v$instance) host_name,
            grantee,
            granted_role
FROM   dba_role_privs
ORDER  BY 1;

最新更新