如果public synonym 和private synonym同名,优先访问private synonym;
SQL> select count(1) from user_tables;
COUNT(1)
----------
18
SQL> select count(1) from user_indexes;
COUNT(1)
----------
4
--基于user_tables和user_indexes创建同名的private synonym和public synonym
--private synoym
SQL> create synonym t_private_synonym for user_tables;
Synonym created
--public synonym
SQL> create public synonym t_private_synonym for user_indexes;
Synonym created
SQL> select owner, synonym_name, table_name
2 from dba_synonyms t
3 where t.synonym_name = upper('t_private_synonym');
OWNER SYNONYM_NAME TABLE_NAME
------------------------------ ------------------------------ ------------------------------
PUBLIC T_PRIVATE_SYNONYM USER_INDEXES
REPORT T_PRIVATE_SYNONYM USER_TABLES
--优先访问private synonym
SQL> select count(1) from t_private_synonym;
COUNT(1)
----------
18
SQL> drop synonym t_private_synonym;
Synonym dropped
--删掉privte synonym后,访问public synonym
SQL> select count(1) from t_private_synonym;
COUNT(1)
----------
4