正在运行选择查询以检查特定数据库中用户的可用性
SELECT * FROM dba_users WHERE username='<username>'
现在担心的是,在要执行此查询的地方,我要检查多个数据库。
是否有一种修改查询的方式,使得它可以同时在所有数据库上执行,即使用单个查询来检查用户在所有数据库中的可用性?
答案 0 :(得分:1)
数据库链接可能会有所帮助。
选择您要对其运行查询的数据库之一,并创建指向所有其他数据库的数据库链接。然后对所有UNION
中的DBA_USERS
进行查询(我可以使用ALL_USERS
来访问它)。
例如:
SQL> connect scott/tiger@db11
Connected.
SQL> create database link dbl_db20
2 connect to user_name_here
3 identified by its_password_here
4 using 'xx.yy.zz.ww:1521/db20';
Database link created.
SQL> select *
2 from (select 'DB11' what, username from all_users@db11
3 union all
4 select 'DB20' what, username from all_users@dbl_db20
5 )
6 where username = 'SCOTT';
WHAT USERNAME
---- ------------------------------
DB11 SCOTT
SQL>