【发布时间】:2013-12-30 04:05:18
【问题描述】:
如果我有一个表 sch1.tab1 是否可以从架构/用户 sch2 调用它
select * from tab1(假设我们拥有所有特权)?
我知道在 postgresql 中您可以设置 db 查找表的搜索路径,这使您可以在引用表时省略架构,但我不知道这是否存在于 oracle 中。
谢谢。
【问题讨论】:
如果我有一个表 sch1.tab1 是否可以从架构/用户 sch2 调用它
select * from tab1(假设我们拥有所有特权)?
我知道在 postgresql 中您可以设置 db 查找表的搜索路径,这使您可以在引用表时省略架构,但我不知道这是否存在于 oracle 中。
谢谢。
【问题讨论】:
您可以create a synonym,但您必须为每个要访问的表创建一个;来自sch2:
create synonym tab1 for sch1.tab1;
更通用的方法是switch your current schema:
alter session set current_schema = 'SCH1';
您仍然与您的原始用户帐户相关联,并且仍然只有这些权限,但您不必再限定该架构中的对象。但现在,如果您在两个模式中都有对象,则必须限定您自己的任何表(返回 sch2)。
【讨论】: