我有一个称为的架构GBO_ARC_SCHEMA,其中有一个名为的表TEST_EMP,我有两个用户说USER_A和USER_B。
GBO_ARC_SCHEMA
TEST_EMP
USER_A
USER_B
首先我连接到USER_A并在下面的查询中解雇了
select count(*)from TEST_EMP; count ----- 20
之后,我以as的身份连接USER_b并在下面的查询中触发,但是它给出了错误,表示该表或视图没有退出
USER_b
select count(*)from TEST_EMP;
但是,如果我使用scma.object name它,则可以像下面这样查询
scma.object name
select count(*)from GBO_ARC_SCHEMA.TEST_EMP;
但是根据我的要求,我不想指定架构名称。
有人可以帮我吗?
如果您希望 所有 用户都可以从表中进行选择而无需使用架构名称,则可以创建一个 公共同义词 :
create public synonym TEST_EMP for GBO_ARC_SCHEMA.TEST_EMP;
如果只想user_b省略模式名称,则想在user_b的模式中创建 私有同义词 WITHIN(以user_b身份登录)
user_b
create synonym TEST_EMP for GBO_ARC_SCHEMA.TEST_EMP;
如果您坚持 不使用同义词,那么在登录后,请执行
alter session set current_schema = GBO_ARC_SCHEMA;