检测Oracle UDT列

时间:2020-10-28 12:30:35

标签: database oracle user-defined-types data-dictionary

我有一个查询,该查询从oracle数据字典中获取表的架构,并且我希望能够检测到它的哪一列是UDT-用户定义的类型列。以下SQL是否合理?

select * from
all_tab_cols
    join all_types on all_tab_cols.DATA_TYPE_OWNER = all_types.owner
    and all_tab_cols.DATA_TYPE = all_types.TYPE_NAME
where ALL_TAB_COLS.owner not in ('SYS', 'SYSTEM', 'XDB')

1 个答案:

答案 0 :(得分:1)

是的,这几乎是您所需要的。差异确实取决于您认为值得包括或不包括的内容。例如。

  • PUBLIC(在ALL_TAB_COLS中)拥有某些复杂的数据类型,但它们的真实类型通常由SYS在ALL_TYPES中拥有
  • 您可能还希望包含/排除其他模式(MDSYS,APEX ...等)
相关问题