обнаружить столбцы UDT оракула

У меня есть запрос, который извлекает схему таблицы из словаря данных оракула, и я хочу иметь возможность определить, какой из его столбцов является столбцом пользовательского типа 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')

person ihadanny    schedule 28.10.2020    source источник


Ответы (1)


Да, это почти то, что вам нужно. Вариации действительно зависят от того, что вы считаете достойным включения или нет. Например.

  • Некоторые сложные типы данных принадлежат PUBLIC (в ALL_TAB_COLS), но их истинный тип обычно принадлежит SYS в ALL_TYPES.
  • Есть и другие схемы, которые вы можете включить/исключить (MDSYS, APEX... и т.д. и т.д.)
person Connor McDonald    schedule 29.10.2020