Я хочу найти, что тип таблицы объявлен как таблица object_type. Эти типы являются автономными типами SQL (не являются частными для каких-либо пакетов или процедур PL / SQL).
Я знаю, что мы можем получить информацию о метаданных типа объекта из представления словаря данных all_type_attrs
. Но не смог найти точку зрения, соединяющую
тип таблицы и соответствующий ему тип объекта.
Существует представление словаря данных user_coll_types
(также all_coll_types
, dba_coll_types
), в котором есть необходимая информация. Столбец elem_type_name
имеет тип объекта, а type_name
дает вам коллекции, определенные как ТАБЛИЦА этого типа.
Итак, этот запрос поможет вам:
select type_name as table_type_name, coll_type
from user_coll_types
where elem_type_name = 'APC_T'
/
Извините, я не получаю ожидаемых результатов. Я запросил таблицы user_coll_types, dba_coll_types, all_coll_types, используя type_name = tbltype_name. Поправьте меня если я ошибаюсь. то, что я сделал, создал тип emp_obj_type как объект (номер emp_id, emp_name varchar2 (10)); create emp_tbl_type - таблица emp_obj_type; выберите * из some_table, где tbltype_name = 'emp_tbl_type' и subObject_type_name = 'emp_obj_type'; 'some_table' - это то, что я ищу, пожалуйста, помогите
Как сообщает APC, представление называется ALL_COLL_TYPES (существуют также версии DBA / USER).
Обратите внимание, что Oracle сохраняет имена идентификаторов в верхнем регистре, если они не заключены в кавычки.
CREATE TYPE emp_obj_type AS OBJECT (
emp_id NUMBER,
emp_name VARCHAR2 (10));
/
CREATE TYPE emp_tbl_type IS TABLE OF emp_obj_type;
/
SELECT type_name, elem_type_name
FROM all_coll_types
WHERE type_name = 'EMP_TBL_TYPE'
AND elem_type_name = 'EMP_OBJ_TYPE';
Как этот вопрос связан с языком Java?