有没有办法找到在 Oracle 12c 中为其创建同义词的对象的基本类型?
Is there any way to find the base type of object for which the synonym is created in Oracle 12c?
CREATE SYNONYM office
FOR SEQ001;
我需要一些系统 table/any 其他方式给我信息 SEQ001
是序列。
简而言之,我需要一个查询,以征用仅为同义词对象而不是其他对象创建的同义词。
那就是这样的:
SQL> create sequence seq001;
Sequence created.
SQL> create synonym syn_se for seq001;
Synonym created.
SQL> select s.synonym_name, o.object_name, o.object_type
2 from user_synonyms s join user_objects o on o.object_name = s.table_name;
SYNONYM_NAME OBJECT_NAME OBJECT_TYPE
--------------- --------------- -------------------
SYN_SE SEQ001 SEQUENCE
SQL>
现在,您可以对其应用不同的过滤器,例如where o.object_type = 'SEQUENCE'
仅查看与序列相关的同义词。
要列出引用其他同义词的所有同义词,请使用字典视图 ALL_SYNONYMS
并检查同义词定义是否与其他同义词相对应。
例子
第一个同义词引用一个序列,另外两个引用一个同义词。
查询显示两个“嵌套”同义词。
create sequence seq001;
create synonym syn001 for seq001;
create synonym syn002 for syn001;
create synonym syn003 for syn002;
select OWNER, SYNONYM_NAME
from all_synonyms
where (TABLE_OWNER, TABLE_NAME) in
(select OWNER, SYNONYM_NAME from all_synonyms)
;
OWNER SYNONYM_NAME
---------- ------------
OOO SYN002
OOO SYN003
视图 ALL_SYNONYMS
显示您的用户已授予访问权限的所有同义词。还有一个字典视图 DBA_SYNONYMS
显示所有 现有 同义词,但您需要额外的权限才能访问它。
CREATE SYNONYM office
FOR SEQ001;
我需要一些系统 table/any 其他方式给我信息 SEQ001
是序列。
简而言之,我需要一个查询,以征用仅为同义词对象而不是其他对象创建的同义词。
那就是这样的:
SQL> create sequence seq001;
Sequence created.
SQL> create synonym syn_se for seq001;
Synonym created.
SQL> select s.synonym_name, o.object_name, o.object_type
2 from user_synonyms s join user_objects o on o.object_name = s.table_name;
SYNONYM_NAME OBJECT_NAME OBJECT_TYPE
--------------- --------------- -------------------
SYN_SE SEQ001 SEQUENCE
SQL>
现在,您可以对其应用不同的过滤器,例如where o.object_type = 'SEQUENCE'
仅查看与序列相关的同义词。
要列出引用其他同义词的所有同义词,请使用字典视图 ALL_SYNONYMS
并检查同义词定义是否与其他同义词相对应。
例子
第一个同义词引用一个序列,另外两个引用一个同义词。 查询显示两个“嵌套”同义词。
create sequence seq001;
create synonym syn001 for seq001;
create synonym syn002 for syn001;
create synonym syn003 for syn002;
select OWNER, SYNONYM_NAME
from all_synonyms
where (TABLE_OWNER, TABLE_NAME) in
(select OWNER, SYNONYM_NAME from all_synonyms)
;
OWNER SYNONYM_NAME
---------- ------------
OOO SYN002
OOO SYN003
视图 ALL_SYNONYMS
显示您的用户已授予访问权限的所有同义词。还有一个字典视图 DBA_SYNONYMS
显示所有 现有 同义词,但您需要额外的权限才能访问它。