Database 查询多个数据库?
使用SQL*Plus查询多个数据库的方法是什么 在MySQL中,可以执行以下操作:Database 查询多个数据库?,database,oracle,sqlplus,Database,Oracle,Sqlplus,使用SQL*Plus查询多个数据库的方法是什么 在MySQL中,可以执行以下操作: create table WK_LINK_JOINT_IDEOREQ AS select k.constraint_name cn, k.table_name tl, l.column_name lc , k.referenced_table_name tg, k.column_name cg, l.referenced_table_name td , l.referenced_column_
create table WK_LINK_JOINT_IDEOREQ AS
select k.constraint_name cn, k.table_name tl, l.column_name lc
, k.referenced_table_name tg, k.column_name cg, l.referenced_table_name td
, l.referenced_column_name cd
from information_schema.KEY_COLUMN_USAGE k
这只是一个示例,它并不完整:但正如您所看到的,我们正在处理两个数据库,信息模式和另一个数据库
我想使用SQL*Plus做类似的事情,但问题是当我们使用SQL*Plus连接时,我们指定了数据库(SID),这意味着其他数据库是不可访问的
有没有办法做到这一点?Oracle有。在Oracle中,同一数据库中有多个用户或模式
因此,如果您真正想要的是从不同的模式访问对象,那么所要做的就是让该模式授予您特权。然后可以引用SQL中的表(或任何内容)
用户JOE允许您在其表上选择
SQL> conn JOE/SOAP
SQL> grant select on my_table to ABC;
然后可以对其运行查询:
SQL> conn ABC/DEF
SQL> select * from joe.my_table;
在您的示例中,您使用了信息模式。与此类似的Oracle是数据字典,一个庞大的视图库
默认情况下,它们中的大多数都被授予公共访问权限。因此,您可以从USER_表、USER_约束和USER_CONS_列中进行选择,以重新创建该查询(假设我理解正确)。ma be helpfull约瑟夫的建议是正确的-数据库链接是Oracle为跨数据库查询提供的机制。