我有一个名为GBO_ARC_SCHEMA
的架构,其中有一个名为TEST_EMP
的表,
我有两个用户说USER_A
和USER_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;