它们都是数据字典的一部分,并且是 PUBLIC SYNONYMNS 对应的 SYS 表/视图。
SELECT object_name,
owner,
object_type
FROM all_objects
WHERE object_name IN (
'CAT',
'TAB'
);
OBJECT_NAME OWNER OBJECT_TYPE
------------------- ----------------- -------------
TAB SYS VIEW
TAB PUBLIC SYNONYM
CAT PUBLIC SYNONYM
它们本身就是 VIEWS,名称为 USER_CATALOG 和 TAB。
SELECT owner,
synonym_name,
table_name
FROM all_synonyms
WHERE synonym_name IN (
'TAB',
'CAT'
);
OWNER SYNONYM_NAME TABLE_NAME
---------------------- ----------------------- -------------
PUBLIC CAT USER_CATALOG
PUBLIC TAB TAB
SYSTEM TAB TAB
如果您想查看VIEWs 从哪些数据字典表/视图中选择,您可以运行
SELECT view_name,text_vc
FROM all_views
WHERE view_name IN ('TAB', 'USER_CATALOG');
注意:Justin Cave here 说 "tab 是一个古老的数据字典表,永远不应该使用它。它的存在只是为了为可能编写数十年的脚本提供向后兼容性以前。”