我有一个名为GBO_ARC_SCHEMA的架构,其中有一个名为TEST_EMP的表,
我有两个用户说USER_AUSER_B

首先我连接到USER_A并在下面的查询中触发

select count(*)from TEST_EMP;

count
-----
20

之后,我以USER_b的身份连接并在查询下面触发,但是它给出了错误,说该表或 View 没有退出
select count(*)from TEST_EMP;

但是,如果我使用scma.object name,则可以像下面这样查询
select count(*)from GBO_ARC_SCHEMA.TEST_EMP;

但是根据我的要求,我不想指定架构名称。

有人可以帮我吗?

最佳答案

如果希望所有用户都可以从表中进行选择而无需使用架构名称,则可以创建一个公共(public)同义词:

create public synonym TEST_EMP for GBO_ARC_SCHEMA.TEST_EMP;

如果只想让user_b省略模式名称,则要创建一个私有(private)同义词WITHIN user_b的模式(以user_b身份登录)
create synonym TEST_EMP for GBO_ARC_SCHEMA.TEST_EMP;

如果您坚持不使用同义词,则登录后,请执行
alter session set current_schema = GBO_ARC_SCHEMA;

10-04 11:21
查看更多