Я пытался изменить тип с помощью следующего кода, и он дал мне код ошибки: 'РТЫ 02303'. Я не знаю много о Oracle или МН / SQL, но я должен решить это; таким образом, я ценил бы дальнейшую справку с этим.
Заранее спасибо. Код является просто примером. Но с другой стороны, я должен проверить его зависимых сначала.
create or replace type A as object (
x_ number,
y_ varchar2(10),
member procedure to_upper
);
/
Я уверен, что он есть где-то в словаре данных, но не уверен, где это возможно; и у вас, вероятно, будет много зависимостей, которые нелегко разрешить. Но вместо этого вы можете изменить существующий тип: http://download.oracle.com/docs/cd/B14117_01/server.101/b10759/statements_4002.htm
Также есть FORCE
, но это все равно может сделать зависимые объекты недействительными.
Если вы использовали тип в таблице, вы сможете увидеть его с помощью запроса вроде:
select * from all_tab_columns
where data_type_owner not in ('SYS');
Но я бы начал с предложения Алекса использовать ALTER TYPE
Просмотрите DBA_DEPENDENCIES, ALL_DEPENDENCIES или USER_DEPENDENCIES
в зависимости от ситуации:
SELECT OWNER, NAME, TYPE
FROM DBA_DEPENDENCIES
WHERE REFERENCED_OWNER = [type owner]
AND REFERENCED_NAME = [type name]
AND REFERENCED_TYPE = 'TYPE'
/